tangem-app-android-audited/.claude/docs/agent-toolkit/README.md
2026-07-02 11:00:53 +05:00

4.4 KiB

Agent Toolkit — approach & contents

A system for building continuable, orchestratable Claude Code subagents, with an Android agent set and an analyzer to keep agents healthy.

The one constraint that drives the design

Claude Code subagents are context-isolated and ephemeral: each runs in a fresh context, does work, returns one message, and forgets. They can't see the parent conversation or each other. Therefore:

  • Orchestration goes through one conductor (android-orchestrator) that dispatches specialists and synthesizes their returns. Specialists never talk to each other.
  • Context lives on disk, not in chat. The root CLAUDE.md is the project's architecture overview (modules, layers, dependency rules, entry points) — every agent reads it on entry.

The contract every agent follows

  • Entry: read the root CLAUDE.md before doing anything.
  • Exit: return the HANDOFF block (asked / did / state / impact / blockers / next / how-to-verify).

This contract is the whole answer to "a user can resume at any time with minimal effort": each HANDOFF block makes its step legible cold, so the orchestrator (and a human) can synthesize where things stand and what to do next.

Standing conventions every agent follows (audit these)

These exist because agents were burning time and context. agent-auditor should flag any agent that violates them.

  1. Findings go in the HANDOFF, not on disk. No agent writes scratch analysis/design .md files to .claude/docs/ (or anywhere) unless the user explicitly asks for a persisted document by name. Long on-disk dumps bloat the repo and get truncated by context compaction — the opposite of resumable. Keep HANDOFFs tight: links and path:line, not prose.
  2. Never fight the build's automation. detekt runs with autoCorrect = true + detekt-formatting (see plugins/configuration/.../DetektConfigurations.kt), so the whole Formatting rule set is auto-fixed by running the task. Agents must not hand-edit autocorrectable violations. Generally: if a Gradle task fixes something, run it — don't reimplement it by hand.
  3. Iterate on the fast task, verify on the slow one. Use compile-only tasks (compile*UnitTestKotlin, compile*Kotlin) to catch errors; run the full test/detekt task once, filtered (--tests, single module), to confirm. Never re-run a slow task per fix.
  4. The repo's own rule files are the source of truth. e.g. .claude/rules/unit-testing.md for tests. Agents point to them rather than duplicating (and drifting from) their content.
  5. Specialists read the feature map before discovering. Nested features/<area>/CLAUDE.md files (the curated per-feature code maps: module layout, key-symbol table, gotchas) are NOT auto-loaded into subagents — only the root hierarchy is. Every specialist's entry contract must Read the target area's features/<area>/CLAUDE.md (and domain//data/ counterparts) when it exists, and use it as the discovery index. This is what stops the same production hubs (SwapModel, DefaultSendComponent, …) being re-mapped from scratch every run. code-analyzer flags areas that lack a map so one can be created.

Contents

agent-toolkit/
  README.md            ← this file (the approach)
  RUBRIC.md            ← 10-dimension agent quality spec
  analyze_agents.py    ← dependency-free linter that scores agents against the rubric
  templates/
    HANDOFF.md         ← return-contract template
~/.claude/agents/
  android-orchestrator.md        ← conductor: plans, dispatches, synthesizes HANDOFFs
  android-feature-builder.md     ← implements within the architecture
  android-code-reviewer.md       ← Android-pitfall correctness review (read-only)
  android-build-test.md          ← Gradle build/test, iterate to green
  android-architecture-guardian.md ← enforces boundaries & layering
  agent-auditor.md               ← meta-agent: audits/improves other agents via RUBRIC.md

Usage

  • Start Android work: invoke android-orchestrator with your goal.
  • Audit agents (tooling): python3 ~/.claude/agent-toolkit/analyze_agents.py
  • Audit agents (judgment): invoke agent-auditor for substance-level review + fixes.

Extending to other stacks

The pattern is stack-agnostic. Clone the android-* set, swap the domain checklists (build commands, framework pitfalls) in each specialist, keep the orchestrator, contracts, and rubric unchanged.