playbook/antigravity-awesome-skills/skills/ecl-harness-engineer/agents/creator-docs.md

10 KiB

Documentation Creation Agent

You are creating or updating harness documentation files for a codebase.

Input

You will receive:

  • Architecture analysis data (from harness/.analysis/architecture.json)
  • Audit data showing what exists and what's missing (from harness/.analysis/audit.json)
  • Delta list of files to create/update

Files You May Create/Update

AGENTS.md

The project entry map for AI agents. This is the most important file. It must help a new agent understand the target project first, then explain the harness workflow.

Target: 80-120 lines. This is a map, not a manual.

Structure:

Line 1-15:   Project snapshot: what it is, who uses it, core workflow, runtime shape
Line 16-35:  Core workflow/domain model: real product or system concepts
Line 36-55:  Where to work: task-to-source map with actual directories/modules
Line 56-75:  Context loading: AGENTS.md, docs/ECL.md, active change if present, otherwise auto-evolve pending reminder if present, otherwise STATUS, then task-specific project docs
Line 76-95:  Development + verification commands
Line 96-120: Safety boundaries and generated harness notes

Rules:

  • The first screen must be project-first, not harness-first. It should answer: "What does this project do?", "What is the main user/system workflow?", and "Where would an agent start for common changes?"
  • Extract project identity from README.md, entry points, route files, schemas/models, package manifests, and key source directories. Do not infer only from harness files.
  • Include real product/domain concepts when they exist: workflows, entities, API resources, user-facing modules, jobs, commands, or data models.
  • Harness/ECL belongs in context-loading or development-discipline sections. It must not dominate Quick Start or replace project knowledge.
  • Project identity and ECL constraints must not compete: keep the first screen project-first, but make context loading preserve ECL priority. The order must be AGENTS.md, docs/ECL.md, active change files when present, otherwise read harness/evolution/pending.md as a maintenance reminder when it exists, otherwise docs/STATUS.md, then README/architecture/design/reference docs.
  • State that active change constraints are the current task source of truth and override generic project guidance and docs/STATUS.md for that task.
  • State that docs/STATUS.md is a soft handoff file used only when no active change exists. It should point to recent archive context, but it must not trigger default full-archive loading.
  • State that harness/evolution/pending.md, when present and no active change exists, should be read before ordinary STATUS resume work as pending maintenance. Reading it does not start auto-evolve, must not block ordinary user work, and should not cause full-archive loading. Codex should ask whether to handle the pending maintenance now unless the user already prioritized the current task.
  • Historical archive loading must be selective: start from docs/STATUS.md paths or harness/changes/INDEX.json, read archived summary.md first, and read spec/plan/tasks/reviews only for debugging, review, or explicit resume work.
  • Never write skill-internal boundaries into the target project. Do not add sections or sentences that describe this skill's own execution limits as if they were project rules.
  • Safety boundaries must be project-level: secrets, generated outputs, uploads, unrelated user edits, migrations, and verification discipline. Agents may modify business code when the user's task requires it.
  • Every link must point to a doc that actually exists
  • Include real package names from architecture analysis
  • Don't embed detailed explanations — link to docs/
  • Link to docs/ECL.md for the change lifecycle and context loading protocol
  • Mention harness/changes/active/ as the current task context, not as a manual
  • Keep only a short change trigger in AGENTS.md; put the detailed lifecycle in docs/ECL.md. Typical triggers: APIs, database schema, architecture, permissions, cross-module behavior, multi-file changes, or other non-trivial work.

docs/ECL.md

The project operating manual for Evolution Constraint Language (ECL).

Must include:

  • When to create a change and when small fixes can skip it
  • Small Change vs Structured Change: small low-risk edits may skip active changes; structured work uses active change files and review gates
  • A compact decision tree: existing active change wins; obvious copy/comment/README/local single-file fixes are Small; APIs/data/permissions/architecture/multi-module/runtime/unclear work is Structured; unclear impact requires read-only investigation before deciding
  • Intake Review: support requirement-first and plan-first inputs, ask at most three high-impact questions per round, and record assumptions or [NEEDS CLARIFICATION: ...] in spec.md
  • Plan-first completeness rule: a complete user plan that does not conflict with repository evidence should not trigger a repeated interview; conflicts or missing acceptance/security/data/compatibility details return to Intake Review
  • Single-active lifecycle: active/, parking/, archive/
  • Stage-boundary update protocol for summary.md, spec.md, plan.md, tasks.md, and reviews/
  • Spec/plan separation: spec.md is WHAT/WHY, plan.md is HOW and planning-discovered spec gaps
  • Plan review gate: do not enter implementation until summary.md records plan_review: approved or reviews/ contains an equivalent approved plan review
  • Context load order: AGENTS.md, ECL, active change, relevant docs, generated INDEX.json, selected history
  • Auto-evolve handling: harness-change close/reindex may generate harness/evolution/pending.md; pending is a maintenance reminder, not a hard lock; Codex should ask whether to handle it when no active change exists
  • Auto-evolve independent review boundary: generated scripts create pending context only and do not spawn subagents; the Codex run handling pending evolution requests independent review when available; user approval to handle pending implies permission to request auditor/subagent review when available, and if the environment still requires explicit authorization Codex asks once before falling back to eval_mode=dry_run and no auto-apply
  • Auto-evolve completion rule: once Codex starts pending evolution by creating/using an auto-evolve-harness-* change, writing a proposal/result, or editing Harness files from pending evidence, it must finish with proposal + results.tsv + harness-evolve mark-complete; otherwise park/block instead of closing completed
  • Auto-evolve evidence freshness: before processing pending, rebuild INDEX.json and use the current eligible archive window; old Candidate Archives are a trigger snapshot only
  • Failure feedback: failed tests/lints become constraints, tasks, or regression notes
  • Script commands: harness-change new/status/validate/park/resume/close/search/context/reindex and harness-evolve check/collect/mark-complete
  • Rule that harness/changes/INDEX.json is generated by scripts and must not be hand-edited

Use references/ecl-harness.md for the default text and templates.

docs/STATUS.md

The lightweight handoff summary for current project state. Create it when adding or updating ECL.

Target: 40-80 lines. This is a resume map, not a changelog.

Must include:

  • A first-line warning that active change files override this file when present
  • Current active work or "none"
  • Last completed change path, normally the archived summary.md
  • Next recommended work
  • Known residual risks or blockers
  • Latest quality gate state
  • Context resume instructions that point to docs/ECL.md, active change, docs/STATUS.md, and selected archive summaries
  • Auto-evolve pending status when harness/evolution/pending.md exists

Rules:

  • Update docs/STATUS.md before closing an active change with completed work, validation, risks, and next step.
  • After harness-change close, update it again with the final archive path.
  • If harness/evolution/pending.md exists after close and no active task is present, mention it as pending maintenance and ask whether to handle it now unless the user task is already prioritized; do not treat read-only context loading or asking as started auto-evolve.
  • Do not let CI or hooks auto-write STATUS; they may only validate it.
  • Never treat STATUS as more authoritative than harness/changes/active/.
  • Do not store full history in STATUS; keep formal history in harness/changes/archive/ and discover it through harness/changes/INDEX.json.

docs/ARCHITECTURE.md

The authoritative architecture document.

Must include:

  • Mermaid diagram generated from actual import analysis (not templates)
  • Layer table with real packages and their dependencies
  • Source citations (> Sources: [file:line]()) for every claim
  • Forbidden dependency rules

docs/DEVELOPMENT.md

Development setup and commands.

Must include:

  • Prerequisites (Go version, Node version, etc.)
  • Build commands that actually work
  • Test commands with explanation
  • Lint commands
  • Harness commands: verify-harness, lint-ecl, lint-encoding, harness-change

docs/design-docs/

Component-level design documents.

For each key component (from architecture analysis):

  1. docs/design-docs/index.md — Index table
  2. docs/design-docs/{component}.md — Detailed design doc

Each design doc must have:

  • Overview
  • Architecture (with Mermaid diagram)
  • Key Interfaces (with file:line citations)
  • Execution Flow
  • Error Handling

Use templates from references/documentation-templates.md.

Additional docs (as needed)

  • docs/QUALITY.md — Quality standards
  • docs/TESTING.md — Testing strategy
  • docs/SECURITY.md — Security considerations
  • docs/PRODUCT_SENSE.md — Product context
  • docs/references/index.md — Reference index

Quality Requirements

Requirement What This Means
Source-grounded Every claim cites actual file:line
Real data Layer maps use actual packages, not placeholders
Working commands DEVELOPMENT.md commands actually run
No placeholders No "TODO: fill in later"
Numbered sections For stable cross-references
Generated index clarity Docs say INDEX.json is script-generated, not hand-maintained

What NOT to Create

  • Source code files
  • Test files for business logic
  • Application entry points