Awesome-omni-skill kubemin-agent-code

Help users develop the KubeMin-Agent project (Python Agent) in a more standardized manner

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/kubemin-agent-code" ~/.claude/skills/diegosouzapw-awesome-omni-skill-kubemin-agent-code && rm -rf "$T"
manifest: skills/development/kubemin-agent-code/SKILL.md
source content

Scope

This skill defines the working agreement for assisting with the KubeMin-Agent project (Python AI Agent), including communication norms, code change workflow, testing expectations, naming conventions, documentation synchronization, and PR hygiene.


Rule Priority

When rules conflict, apply this priority order:

  1. Security > Correctness > Performance
  2. Explicit user instructions > SKILL rules > General best practices
  3. Single-turn delivery (low risk) > Multi-turn confirmation
  4. Existing project conventions > General Python conventions

1. Risk Assessment & Delivery Strategy

Risk Levels

LevelCriteriaDelivery Strategy
LR0 (Pure Internal)No public API/behavior changes, no persistence/concurrency/security involvement, single module scope, behavior-preserving refactors or non-functional changesSingle-turn delivery
LR1 (Limited Domain)Touches persistence/concurrency/security BUT satisfies all LR1 constraints belowSingle-turn delivery (with verification)
Medium/HighAPI/behavior changes, schema changes, new shared concurrency state, security boundary expansion, cross-module impactConfirm plan first

LR1 Constraints (must satisfy ALL)

  • Scope limit: ≤3 files OR ≤200 LOC changed
  • Localized bugfix/security fix with no API/contract changes
  • Testable or verifiable with reproducible steps
  • No schema changes (migrations, serialization format)
  • No new shared concurrency state (e.g., new global dict + lock)
  • No permission/access scope expansion

LR1 exclusions: Schema changes, cross-module protocol/serialization format changes, new shared concurrency state, relaxed auth/access scope.

Efficiency Rules

  • Ambiguous but low-risk: Proceed with clearly stated assumptions. Ask only when assumptions may affect correctness, safety, or public behavior.
  • Single-turn preference: Deliver plan + code + tests/verification + docs/PR in one response unless medium/high-risk confirmation required.
  • Batch processing: Multiple low-risk changes in same session → one combined delivery.

Delivery Block Order

1. Risk Assessment (LR0/LR1/Medium/High)
2. Assumptions (if any ambiguity)
3. Plan (what will change)
4. Patch (code changes)
5. Tests/Verification (if meaningful)
6. Docs/PR (only if required or requested)

2. Communication

  • Communicate with user in Chinese by default
  • Documentation defaults to Chinese; English only when explicitly requested
  • Provide English for specific artifacts only when user requests

3. Code Standards

Naming

  • Follow Python PEP 8 conventions:
    snake_case
    for functions/variables/modules,
    CamelCase
    for class names
  • Prefer existing naming patterns in the project
  • Names should express intent clearly; avoid abbreviations (except project-standard ones)

Style

  • Favor simplicity; avoid over-engineering
  • Small functions, composable, early returns
  • Async code uses
    async/await
    , properly propagate cancellation and timeouts
  • Errors use custom exceptions with traceable context information
  • Type annotations: add complete Type Hints for all public interfaces

Constants & Configuration

TypeLocation
Single-package constantsNearest package (e.g.,
agent/constants.py
)
Cross-domain constants
config/constants.py
or project's existing public constants location (avoid reverse-depending on business packages)
Runtime-configurable values
config/
package, using Pydantic Settings

Rule: Reusable strings/enums should be centralized, avoid scattered hard-coding. Only runtime-configurable items belong in

config/
.

Project Architecture Conventions

ModuleResponsibility
control/
Control plane (Scheduler, Validator, AgentRegistry, AuditLog)
agents/
Sub-agents (BaseAgent, K8sAgent, WorkflowAgent, GeneralAgent, GameTestAgent)
agent/
Agent runtime infrastructure (Loop, Context, Memory, Skills)
agent/tools/
Tool registration and execution (Base, Registry, concrete tool implementations)
providers/
LLM Provider abstraction and concrete implementations
bus/
Message bus (decouples Channel from Agent)
channels/
Channel integration (CLI, Telegram, etc.)
session/
Session management and persistence
config/
Configuration model and loading
cron/
Scheduled task scheduling
heartbeat/
Heartbeat detection and proactive wake-up
skills/
Built-in skills
cli/
CLI command entry
utils/
Common utility functions

Self-Review

After implementation: eliminate duplication, reduce nesting, remove redundant branches, check type annotation completeness.


4. Testing Requirements

Change TypeTest Strategy
LR0 (non-functional)Tests only if meaningful
LR0 (logic changes)Minimal unit tests covering modified logic
LR1 changesUnit tests OR verification steps
Medium/High riskFull coverage: parameterized tests, edge cases, failure paths

Test Exemption & Alternatives

When unit tests are impractical, document:

  1. Why not testable: e.g., handler layer with complex external dependencies
  2. Alternative verification (must be reproducible and copy-pasteable):
    • Exact commands to run
    • Expected output/behavior

Handler layer exemption: If handler layer has no unit tests, must provide:

  • Unit test coverage for the underlying service/domain layer (if affected by this change), OR
  • Reproducible curl/CLI/integration commands with expected results

Acceptable exemption cases:

  • Log/comment/formatting changes (testing adds no value)
  • Handler code with complex dependencies (but service layer must be covered)

Test Organization

  • Use
    pytest
    as the testing framework
  • Keep tests for same feature in one test file
  • Extend existing
    test_*.py
    files; create new only when no suitable file exists
  • Use
    conftest.py
    to manage shared fixtures

5. Documentation Updates

Trigger Conditions

Change ImpactRequires
docs/
?
User-visible behavior/API/config/ops✅ Yes
Contract logs✅ Yes
Debug/diagnostic logs❌ No
Error contract changes✅ Yes
Default value/semantic changes✅ Yes
Pure internal refactoring / non-functional❌ No

Documentation Content (when required)

  • Summary, motivation, key design decisions
  • API/behavior changes
  • Test coverage description
  • Test execution commands

Organization Rules

  • Merge docs for same PR into one Markdown file per topic
  • If repository lacks
    docs/
    directory → confirm before creating; otherwise update existing structure
  • Language: Chinese by default

6. PR Guidelines

Format

  • Title: Clear imperative sentence
  • Body: Summary / Changes / Testing / Notes
  • ⚠️ Use real newlines, not
    \n
    escape sequences

When to Provide PR Description

  • User explicitly requests ("give me PR description" / "preparing to submit PR")
  • Change requires docs/examples (complete delivery scenario)
  • Default: title + brief summary only

Updates

Only update PR description when new commits change scope or materially affect user-visible behavior/API, configuration, or risk.


7. Dependency Management

Core Dependency Conventions

PurposeRecommended Library
CLI framework
typer
LLM gateway
litellm
Config model
pydantic
+
pydantic-settings
HTTP client
httpx
Logging
loguru
Cron scheduling
croniter
Terminal output
rich
Async WebSocket
websockets

Rules

  • New dependencies must justify their inclusion, prefer reusing existing dependencies
  • Use
    pyproject.toml
    to manage dependencies
  • Use
    hatchling
    as the build backend

8. Anti-patterns

❌ Don't✅ Do
Abuse LR1 for schema/shared-state changesUse LR1 only within defined constraints
Skip tests without reproducible alternativeProvide copy-pasteable verification commands
Document every log changeOnly document contract logs
Put cross-domain constants in random packagesUse
config/constants.py
for shared constants
Always generate full docs/PROnly when required or requested
Bypass AgentLoop to modify flow directlyNew capabilities must be attached under existing interfaces
Expose sensitive info in tool returnsAPI Keys only read from config or env vars

9. Pre-Delivery Checklist

  • Risk level (LR0/LR1/Medium/High) correctly assessed?
  • LR1 constraints verified (≤3 files, no schema/shared-state changes)?
  • Delivery block order followed?
  • Tests provided OR reproducible verification documented?
  • Contract logs declared before requiring docs?
  • Docs/PR only if required?
  • Type annotations complete?
  • async/await usage correct?

Decision Flow

Receive request → Assess risk
    │
    ├── LR0 (Pure Internal)
    │     └── Single-turn: Plan + Patch + Tests (if meaningful) + Docs (if required)
    │
    ├── LR1 (Limited Domain) — verify constraints first
    │     ├── ≤3 files, ≤200 LOC?
    │     ├── No schema/shared-state/auth-expansion?
    │     └── Yes → Single-turn: Plan + Patch + Tests/Verification + Docs (if required)
    │
    └── Medium/High
          └── Confirm plan → User approval → Implement
                  │
                  ├── Affects public API? → Generate examples/
                  │     (includes defaults, pagination)
                  │
                  └── User-visible change? → Generate docs/
                        (contract logs only)

10. Iterative Improvement Process

This SKILL.md is a living document, continuously improved through real development feedback.

Improvement Triggers

Trigger ScenarioAction
User reports recurring issues found in review→ Analyze root cause → Propose new/modified rules → Update SKILL.md
Multiple review rounds still produce new issues→ Categorize issues → Add to "Lessons Learned" → Strengthen checklist
Existing rules cause low efficiency→ Discuss simplification → Adjust rules → Record change reason
Architecture evolution makes conventions outdated→ Update architecture convention table → Sync context-index.md

Improvement Flow

User reports issue → Analyze if systemic
    │
    ├── One-off issue → Fix code only, don't change SKILL
    │
    └── Systemic/recurring issue → Propose SKILL improvement
          │
          ├── 1. Identify issue category (naming/architecture/security/testing/performance/…)
          ├── 2. Propose specific rule changes (for user confirmation)
          ├── 3. After user confirms, update corresponding SKILL.md section
          ├── 4. Add to "Lessons Learned" section
          └── 5. Record in "Changelog"

Proactive Suggestion Timing

After each code implementation, proactively suggest SKILL.md improvements if:

  • Repeatedly hesitated on design decisions during implementation (indicates rules are unclear)
  • Bypassed a rule in the code (indicates rule may be unreasonable or needs exception clause)
  • Discovered quality risk points not covered by existing rules

11. Lessons Learned (Review Retrospective)

This section records recurring issues and pitfalls discovered during reviews, for proactive avoidance in future development. Each entry includes: Problem Description, Root Cause Analysis, Mitigation Measures.

<!-- Template: ### [LESSON-XXX] Brief Problem Description - **Date Discovered**: YYYY-MM-DD - **Problem**: Specific description of what happened - **Root Cause**: Why this problem occurred - **Mitigation**: How to avoid this in the future (synced to which SKILL section) - **Related Rule**: Points to the rule added/modified in SKILL as a result -->

[LESSON-001] No Emoji in Documentation

  • Date Discovered: 2026-02-25
  • Problem: Design document used emoji characters in module structure comments, reducing professionalism
  • Root Cause: Default tendency to use emoji for visual categorization in code comments
  • Mitigation: All documentation and code comments must use plain text descriptions only. No emoji characters in any project artifacts including SKILL.md, design docs, README, and inline comments
  • Related Rule: Section 5 (Documentation Updates) - implicit formatting standard

[LESSON-002] Must Read SKILL.md Before Every Task

  • Date Discovered: 2026-02-25
  • Problem: Implemented GameTestAgent without re-reading SKILL.md, resulting in: missing type annotations on internal methods, hardcoded magic numbers instead of constants, architecture convention table not updated for new modules
  • Root Cause: Relied on "memory impression" of SKILL.md instead of actually reading it before implementation
  • Mitigation: Before every code implementation task, explicitly read SKILL.md first. After implementation, self-review against the Pre-Delivery Checklist (Section 9)
  • Related Rule: Section 9 (Pre-Delivery Checklist), Section 3 (Code Standards - Type Annotations, Constants)

12. Changelog

VersionDateChangesTrigger
v1.02026-02-25Initial version: complete development standardsProject initialization
v1.12026-02-25Added iterative improvement process, lessons learned section, changelogUser requested continuous improvement capability for Skills
v1.22026-02-25Translated entire SKILL.md to English for better readabilityUser requested English version
v1.32026-02-25Added LESSON-001: no emoji in documentationUser feedback during design doc review
v1.42026-02-25Added LESSON-002: must read SKILL.md before every task; updated architecture table with control/ and agents/ modulesSelf-review after GameTestAgent implementation