Agent and Skill Workflows¶
When do you use which agent or skill? This page complements the automatically generated Skills catalog and Agents catalog with project-specific usage recommendations, typical workflows, and model-selection hints.
Catalog vs. Workflows
- The Skills catalog and Agents catalog are generated automatically from the source files in
.claude/skills/,.claude/agents/, and thenolte-sharedplugin. - This page is hand-maintained and describes the Kamerplanter-specific context for using them.
Decision Guide¶
Which agent/skill for my task?
By workflow phase:
| Phase | Agent/Skill |
|---|---|
| Write requirements | tech-stack-architect, /review-spec |
| Review requirements | agrobiology-requirements-reviewer, it-security-requirements-reviewer, casual-houseplant-user-reviewer |
| Implement | fullstack-developer, /implement |
| Test locally | unit-test-runner, /nolte-engineering:quality-gate |
| Review code | nolte-engineering:code-security-reviewer, frontend-usability-optimizer |
| Write docs | mkdocs-documentation |
| Check docs | /nolte-shared:docs-freshness-checker |
| Prepare PR | /nolte-engineering:quality-gate → pr-to-develop → /nolte-shared:pull-request-create (see the pre-PR chain) |
| Audit test tiers | /nolte-engineering:test-pyramid-check |
| E2E tests | nolte-engineering:test-case-extractor → nolte-engineering:e2e-test-generator |
| E2E results | nolte-engineering:e2e-result-reviewer |
| HA integration | ha-integration-requirements-engineer → ha-integration-developer |
| Deploy HA | /deploy-ha |
| Knowledge base | /gen-knowledge, knowledge-chunk-author |
| RAG quality | rag-eval-runner |
| CVE scan | /nolte-engineering:dependency-audit |
Typical Scenarios¶
Scenario 1: Implement a feature (spec → code → PR)¶
- Check the specification:
tech-stack-architect - Review requirements:
agrobiology-requirements-reviewer,it-security-requirements-reviewer - Implement:
fullstack-developer - Test locally:
/nolte-engineering:quality-gate - Review security:
nolte-engineering:code-security-reviewer - Optimize the UI:
frontend-usability-optimizer - Documentation:
mkdocs-documentation - Prepare the PR: the pre-PR chain, then
/nolte-shared:pull-request-create
Scenario 2: E2E tests for a feature¶
- Derive test cases:
nolte-engineering:test-case-extractor - Generate tests:
nolte-engineering:e2e-test-generator(NFR-008 compliant) - Review tests:
nolte-engineering:e2e-test-reviewer - Analyze results:
nolte-engineering:e2e-result-reviewer
Scenario 3: Review a requirement¶
- Technical feasibility:
tech-stack-architect - Botanical correctness:
agrobiology-requirements-reviewer - IT security & GDPR:
it-security-requirements-reviewer - Contradictions:
requirements-contradiction-analyzer - User perspectives:
casual-houseplant-user-reviewer,cannabis-indoor-grower-reviewer,outdoor-garden-planner-reviewer
Scenario 4: Extend the Home Assistant integration¶
- Derive requirements:
ha-integration-requirements-engineer - Review HA:
smart-home-ha-reviewer - Implement:
ha-integration-developer - Sync with the backend:
ha-integration-sync - Deploy:
/deploy-ha
Scenario 5: Improve the RAG system¶
- Benchmark quality:
rag-eval-runner - Close gaps:
knowledge-chunk-author - Re-test:
rag-eval-runner
The Pre-PR Chain¶
Until #1405 two project-local skills covered this, check-test-pyramid and pre-pr. Both are gone: they shadowed plugin capabilities, which CLAUDE.md §"Claude Code plugin adoption" rules out, and each plugin pendant does more than the local original did.
Why the two skills were retired
check-test-pyramid checked that all four test tiers were present. /nolte-engineering:test-pyramid-check checks the same against a five-tier taxonomy and additionally runs a falsifiability sweep per spec/project/test-falsifiability/ (T-categories: assertion-free tests, tautological assertions, swallowed failure signals, duplicate selectors). Measured against three closed issues of exactly that class — #1056, #802,
1153 — the local skill reports none and the plugin pendant reports¶
#1056 and #1153. #802 (a captured before-state never compared) is caught in this repository by ruff via F841, configured in tests/e2e/ruff.toml — the static-analysis tier the spec routes that detection to anyway, and it is untouched.
pre-pr bundled five lint/test commands plus three agent dispatches. /nolte-engineering:quality-gate does the five better: it prefers this repository's declared Taskfile targets instead of hard-wiring ruff, pytest and npm, and it distinguishes "skipped" from "passed".
The decision on the three extras¶
pre-pr additionally started three agents. All three are plugin agents and directly invocable; the local skill was an ordering, not a capability. They therefore did not move into a shrunken local skill but into this chain — a local orchestration skill wrapping three foreign agents would re-create exactly the coupling #1405 dissolves:
| Extra | Owned by | When |
|---|---|---|
| i18n completeness | nolte-engineering:i18n-completeness-checker | on frontend changes |
| Security review | nolte-engineering:code-security-reviewer | on changes under src/backend/app/ |
| Docs freshness | nolte-shared:docs-freshness-checker | on changes to the API, domain models, frontend pages, docs/ or spec/ |
The order¶
/nolte-engineering:quality-gate— lint, typecheck, tests.- On test changes, additionally
/nolte-engineering:test-pyramid-check <module>. - The three agents above, by relevance — they are independent and run in parallel.
pr-to-develop— kamerplanter's own gates (act, hadolint,docker build,helm lint, Conventional Commits)./nolte-shared:pull-request-create.
What no guard sees
task check:plugin-shadowing (#1405) goes red when a local skill or agent carries the same name as a plugin asset — or the same name tokens in another order, which is what the check-test-pyramid / test-pyramid-check pair is. A shadow under an unrelated name, which is precisely the pre-pr over quality-gate shape, is invisible there and still needs a reading pass.
Model Selection¶
| Model | Use | Example |
|---|---|---|
| opus | Complex generation, architecture decisions, extensive analyses | fullstack-developer, ha-integration-developer, casual-houseplant-user-reviewer, tech-stack-architect, nolte-engineering:e2e-test-generator |
| sonnet | Default: balance of quality and speed | Most agents (reviews, code fixes, documentation) |
Output Directories¶
| Output type | Directory |
|---|---|
| Analysis reports | spec/analysis/ |
| Test-case specifications | spec/e2e-testcases/ |
| E2E test reports | test-reports/ |
| Documentation | docs/de/, docs/en/ |
| Design prompts | spec/design/ |
| Seed data | src/backend/app/migrations/seed_data/ |
| Knowledge base | spec/knowledge/rag/ |
| Code | src/backend/, src/frontend/ |
| HA integration | custom_components/kamerplanter/ |
Tips¶
- Start an agent: Call the agent's name in the Claude Code chat.
- Run a skill: Type
/skillname(project-local) or/nolte-shared:skillname(shared) in the chat. - Agents in parallel: Agents have no dependencies and can run in parallel.
- English code, German docs: NFR-003 — source code MUST be in English.
- Keep the catalog current: The skill and agent catalog is regenerated automatically from the source files on every
task docs:build; no manual upkeep needed.