all-hands-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.allhands/README.md +75 -0
- package/.allhands/agents/compounder.yaml +15 -0
- package/.allhands/agents/coordinator.yaml +17 -0
- package/.allhands/agents/documentor.yaml +15 -0
- package/.allhands/agents/e2e-test-planner.yaml +17 -0
- package/.allhands/agents/emergent.yaml +22 -0
- package/.allhands/agents/executor.yaml +14 -0
- package/.allhands/agents/ideation.yaml +11 -0
- package/.allhands/agents/initiative-steering.yaml +19 -0
- package/.allhands/agents/judge.yaml +13 -0
- package/.allhands/agents/planner.yaml +19 -0
- package/.allhands/agents/pr-reviewer.yaml +15 -0
- package/.allhands/docs.json +5 -0
- package/.allhands/docs.local.json +26 -0
- package/.allhands/flows/COMPOUNDING.md +203 -0
- package/.allhands/flows/COORDINATION.md +89 -0
- package/.allhands/flows/CORE.md +87 -0
- package/.allhands/flows/DOCUMENTATION.md +218 -0
- package/.allhands/flows/E2E_TEST_PLAN_BUILDING.md +140 -0
- package/.allhands/flows/EMERGENT_PLANNING.md +57 -0
- package/.allhands/flows/IDEATION_SCOPING.md +154 -0
- package/.allhands/flows/INITIATIVE_STEERING.md +110 -0
- package/.allhands/flows/JUDGE_REVIEWING.md +79 -0
- package/.allhands/flows/PROMPT_TASK_EXECUTION.md +68 -0
- package/.allhands/flows/PR_REVIEWING.md +43 -0
- package/.allhands/flows/SPEC_PLANNING.md +216 -0
- package/.allhands/flows/harness/WRITING_HARNESS_FLOWS.md +27 -0
- package/.allhands/flows/harness/WRITING_HARNESS_KNOWLEDGE.md +27 -0
- package/.allhands/flows/harness/WRITING_HARNESS_ORCHESTRATION.md +27 -0
- package/.allhands/flows/harness/WRITING_HARNESS_SKILLS.md +27 -0
- package/.allhands/flows/harness/WRITING_HARNESS_TOOLS.md +27 -0
- package/.allhands/flows/harness/WRITING_HARNESS_VALIDATION_TOOLING.md +27 -0
- package/.allhands/flows/shared/CODEBASE_UNDERSTANDING.md +72 -0
- package/.allhands/flows/shared/CREATE_HARNESS_SPEC.md +48 -0
- package/.allhands/flows/shared/CREATE_SPEC.md +41 -0
- package/.allhands/flows/shared/CREATE_VALIDATION_TOOLING_SPEC.md +70 -0
- package/.allhands/flows/shared/DOCUMENTATION_DISCOVERY.md +123 -0
- package/.allhands/flows/shared/DOCUMENTATION_WRITER.md +101 -0
- package/.allhands/flows/shared/EMERGENT_REFINEMENT_ANALYSIS.md +76 -0
- package/.allhands/flows/shared/EXTERNAL_TECH_GUIDANCE.md +97 -0
- package/.allhands/flows/shared/IDEATION_CODEBASE_GROUNDING.md +49 -0
- package/.allhands/flows/shared/PLAN_DEEPENING.md +152 -0
- package/.allhands/flows/shared/PROMPT_TASKS_CURATION.md +113 -0
- package/.allhands/flows/shared/PROMPT_VALIDATION_REVIEW.MD +99 -0
- package/.allhands/flows/shared/QUICK_PREMORTEM.md +70 -0
- package/.allhands/flows/shared/RESEARCH_GUIDANCE.md +38 -0
- package/.allhands/flows/shared/REVIEW_OPTIONS_BREAKDOWN.md +68 -0
- package/.allhands/flows/shared/SKILL_EXTRACTION.md +84 -0
- package/.allhands/flows/shared/SPEC_FLOW_ANALYSIS.md +119 -0
- package/.allhands/flows/shared/TDD_WORKFLOW.md +109 -0
- package/.allhands/flows/shared/UTILIZE_VALIDATION_TOOLING.md +84 -0
- package/.allhands/flows/shared/WRITING_HARNESS_FLOWS.md +11 -0
- package/.allhands/flows/shared/WRITING_HARNESS_MCP_TOOLS.md +84 -0
- package/.allhands/flows/shared/jury/ARCHITECTURE_REVIEW.md +91 -0
- package/.allhands/flows/shared/jury/BEST_PRACTICES_REVIEW.md +80 -0
- package/.allhands/flows/shared/jury/CLAIM_VERIFICATION_REVIEW.md +101 -0
- package/.allhands/flows/shared/jury/EXPECTATIONS_FIT_REVIEW.md +78 -0
- package/.allhands/flows/shared/jury/MAINTAINABILITY_REVIEW.md +110 -0
- package/.allhands/flows/shared/jury/PROMPTS_EXPECTATIONS_FIT.md +74 -0
- package/.allhands/flows/shared/jury/PROMPTS_FLOW_ANALYSIS.md +92 -0
- package/.allhands/flows/shared/jury/PROMPTS_YAGNI.md +78 -0
- package/.allhands/flows/shared/jury/PROMPT_PREMORTEM.md +125 -0
- package/.allhands/flows/shared/jury/SECURITY_REVIEW.md +86 -0
- package/.allhands/flows/shared/jury/YAGNI_REVIEW.md +82 -0
- package/.allhands/flows/wip/DEBUG_INVESTIGATION.md +162 -0
- package/.allhands/flows/wip/MEMORY_RECALL.md +62 -0
- package/.allhands/harness/ah +131 -0
- package/.allhands/harness/package-lock.json +5292 -0
- package/.allhands/harness/package.json +52 -0
- package/.allhands/harness/src/__tests__/e2e/commands.test.ts +307 -0
- package/.allhands/harness/src/__tests__/e2e/event-loop.test.ts +539 -0
- package/.allhands/harness/src/__tests__/e2e/hooks.test.ts +427 -0
- package/.allhands/harness/src/__tests__/e2e/new-initiative-routing.test.ts +137 -0
- package/.allhands/harness/src/__tests__/e2e/run-e2e.ts +109 -0
- package/.allhands/harness/src/__tests__/e2e/specs-type.test.ts +210 -0
- package/.allhands/harness/src/__tests__/e2e/validation-hooks.test.ts +669 -0
- package/.allhands/harness/src/__tests__/e2e/validation-path-consistency.test.ts +354 -0
- package/.allhands/harness/src/__tests__/e2e/validation.test.ts +528 -0
- package/.allhands/harness/src/__tests__/harness/assertions.ts +318 -0
- package/.allhands/harness/src/__tests__/harness/cli-runner.ts +359 -0
- package/.allhands/harness/src/__tests__/harness/fixture.ts +384 -0
- package/.allhands/harness/src/__tests__/harness/hook-runner.ts +411 -0
- package/.allhands/harness/src/__tests__/harness/index.ts +122 -0
- package/.allhands/harness/src/cli.ts +36 -0
- package/.allhands/harness/src/commands/complexity.ts +177 -0
- package/.allhands/harness/src/commands/context7.ts +202 -0
- package/.allhands/harness/src/commands/docs.ts +557 -0
- package/.allhands/harness/src/commands/hooks.ts +24 -0
- package/.allhands/harness/src/commands/index.ts +51 -0
- package/.allhands/harness/src/commands/knowledge.ts +382 -0
- package/.allhands/harness/src/commands/memories.ts +302 -0
- package/.allhands/harness/src/commands/notify.ts +61 -0
- package/.allhands/harness/src/commands/oracle.ts +158 -0
- package/.allhands/harness/src/commands/perplexity.ts +220 -0
- package/.allhands/harness/src/commands/planning.ts +245 -0
- package/.allhands/harness/src/commands/schema.ts +73 -0
- package/.allhands/harness/src/commands/skills.ts +128 -0
- package/.allhands/harness/src/commands/solutions.ts +353 -0
- package/.allhands/harness/src/commands/spawn.ts +158 -0
- package/.allhands/harness/src/commands/specs.ts +532 -0
- package/.allhands/harness/src/commands/tavily.ts +226 -0
- package/.allhands/harness/src/commands/tools.ts +579 -0
- package/.allhands/harness/src/commands/trace.ts +327 -0
- package/.allhands/harness/src/commands/tui.ts +960 -0
- package/.allhands/harness/src/commands/validate.ts +143 -0
- package/.allhands/harness/src/commands/validation-tools.ts +108 -0
- package/.allhands/harness/src/hooks/context.ts +1442 -0
- package/.allhands/harness/src/hooks/enforcement.ts +170 -0
- package/.allhands/harness/src/hooks/index.ts +54 -0
- package/.allhands/harness/src/hooks/lifecycle.ts +229 -0
- package/.allhands/harness/src/hooks/notification.ts +104 -0
- package/.allhands/harness/src/hooks/observability.ts +551 -0
- package/.allhands/harness/src/hooks/session.ts +88 -0
- package/.allhands/harness/src/hooks/shared.ts +815 -0
- package/.allhands/harness/src/hooks/transcript-parser.ts +208 -0
- package/.allhands/harness/src/hooks/validation.ts +617 -0
- package/.allhands/harness/src/lib/__tests__/ctags.test.ts +244 -0
- package/.allhands/harness/src/lib/__tests__/docs-validation.test.ts +344 -0
- package/.allhands/harness/src/lib/__tests__/mcp-runtime.test.ts +190 -0
- package/.allhands/harness/src/lib/__tests__/schema.test.ts +861 -0
- package/.allhands/harness/src/lib/base-command.ts +198 -0
- package/.allhands/harness/src/lib/cli-daemon.ts +343 -0
- package/.allhands/harness/src/lib/compaction.ts +313 -0
- package/.allhands/harness/src/lib/ctags.ts +497 -0
- package/.allhands/harness/src/lib/docs-validation.ts +907 -0
- package/.allhands/harness/src/lib/event-loop.ts +662 -0
- package/.allhands/harness/src/lib/flows.ts +155 -0
- package/.allhands/harness/src/lib/git.ts +276 -0
- package/.allhands/harness/src/lib/knowledge-worker.ts +72 -0
- package/.allhands/harness/src/lib/knowledge.ts +810 -0
- package/.allhands/harness/src/lib/llm.ts +255 -0
- package/.allhands/harness/src/lib/mcp-client.ts +432 -0
- package/.allhands/harness/src/lib/mcp-daemon.ts +486 -0
- package/.allhands/harness/src/lib/mcp-runtime.ts +418 -0
- package/.allhands/harness/src/lib/notification.ts +115 -0
- package/.allhands/harness/src/lib/opencode/index.ts +70 -0
- package/.allhands/harness/src/lib/opencode/profiles.ts +300 -0
- package/.allhands/harness/src/lib/opencode/prompts/codesearch.md +98 -0
- package/.allhands/harness/src/lib/opencode/prompts/knowledge-aggregator.md +67 -0
- package/.allhands/harness/src/lib/opencode/runner.ts +281 -0
- package/.allhands/harness/src/lib/oracle.ts +926 -0
- package/.allhands/harness/src/lib/planning-utils.ts +150 -0
- package/.allhands/harness/src/lib/planning.ts +605 -0
- package/.allhands/harness/src/lib/pr-review.ts +225 -0
- package/.allhands/harness/src/lib/prompts.ts +522 -0
- package/.allhands/harness/src/lib/schema.ts +418 -0
- package/.allhands/harness/src/lib/schemas/agent-profile.ts +141 -0
- package/.allhands/harness/src/lib/schemas/template-vars.ts +138 -0
- package/.allhands/harness/src/lib/session.ts +164 -0
- package/.allhands/harness/src/lib/specs.ts +348 -0
- package/.allhands/harness/src/lib/tldr.ts +829 -0
- package/.allhands/harness/src/lib/tmux.ts +1051 -0
- package/.allhands/harness/src/lib/trace-store.ts +714 -0
- package/.allhands/harness/src/mcp/__tests__/index.test.ts +46 -0
- package/.allhands/harness/src/mcp/_template.ts +47 -0
- package/.allhands/harness/src/mcp/filesystem.ts +33 -0
- package/.allhands/harness/src/mcp/index.ts +69 -0
- package/.allhands/harness/src/mcp/playwright.ts +34 -0
- package/.allhands/harness/src/mcp/xcodebuild.ts +29 -0
- package/.allhands/harness/src/schemas/docs.schema.json +44 -0
- package/.allhands/harness/src/schemas/settings.schema.json +214 -0
- package/.allhands/harness/src/tui/actions.ts +227 -0
- package/.allhands/harness/src/tui/file-viewer-modal.ts +270 -0
- package/.allhands/harness/src/tui/index.ts +1574 -0
- package/.allhands/harness/src/tui/modal.ts +232 -0
- package/.allhands/harness/src/tui/prompts-pane.ts +186 -0
- package/.allhands/harness/src/tui/status-pane.ts +434 -0
- package/.allhands/harness/tsconfig.json +22 -0
- package/.allhands/harness/vitest.config.ts +13 -0
- package/.allhands/pillars.md +33 -0
- package/.allhands/principles.md +88 -0
- package/.allhands/schemas/alignment.yaml +51 -0
- package/.allhands/schemas/documentation.yaml +10 -0
- package/.allhands/schemas/prompt.yaml +92 -0
- package/.allhands/schemas/skill.yaml +34 -0
- package/.allhands/schemas/solution.yaml +131 -0
- package/.allhands/schemas/spec.yaml +67 -0
- package/.allhands/schemas/validation-suite.yaml +49 -0
- package/.allhands/schemas/workflow.yaml +51 -0
- package/.allhands/settings.json +57 -0
- package/.allhands/skills/claude-code-patterns/SKILL.md +60 -0
- package/.allhands/skills/claude-code-patterns/docs/context-hygiene.md +19 -0
- package/.allhands/skills/harness-maintenance/SKILL.md +449 -0
- package/.allhands/skills/harness-maintenance/references/core-architecture.md +187 -0
- package/.allhands/skills/harness-maintenance/references/harness-skills.md +87 -0
- package/.allhands/skills/harness-maintenance/references/knowledge-compounding.md +78 -0
- package/.allhands/skills/harness-maintenance/references/tools-commands-mcp-hooks.md +115 -0
- package/.allhands/skills/harness-maintenance/references/validation-tooling.md +77 -0
- package/.allhands/skills/harness-maintenance/references/writing-flows.md +84 -0
- package/.allhands/validation/browser-automation.md +109 -0
- package/.allhands/validation/xcode-automation.md +195 -0
- package/.allhands/workflows/documentation.md +86 -0
- package/.allhands/workflows/investigation.md +81 -0
- package/.allhands/workflows/milestone.md +91 -0
- package/.allhands/workflows/optimization.md +85 -0
- package/.allhands/workflows/refactor.md +99 -0
- package/.allhands/workflows/triage.md +81 -0
- package/.claude/README.md +1 -0
- package/.claude/agents/explorer.md +10 -0
- package/.claude/agents/researcher.md +11 -0
- package/.claude/agents/task-runner.md +8 -0
- package/.claude/settings.json +231 -0
- package/.env.ai.example +7 -0
- package/.github/workflows/npm-publish.yml +69 -0
- package/.internal.json +45 -0
- package/.tldr/config.json +11 -0
- package/.tldrignore +90 -0
- package/CLAUDE.md +6 -0
- package/README.md +98 -0
- package/bin/sync-cli.js +7552 -0
- package/concerns.md +7 -0
- package/docs/README.md +41 -0
- package/docs/agents/README.md +24 -0
- package/docs/agents/agent-configuration-system.md +86 -0
- package/docs/agents/execution-agents.md +50 -0
- package/docs/agents/knowledge-agents.md +61 -0
- package/docs/agents/orchestration-agent.md +57 -0
- package/docs/agents/planning-agents.md +84 -0
- package/docs/agents/quality-review-agents.md +67 -0
- package/docs/agents/workflow-agent-orchestration.md +69 -0
- package/docs/flows/README.md +44 -0
- package/docs/flows/compounding.md +126 -0
- package/docs/flows/coordination.md +72 -0
- package/docs/flows/core-harness-integration.md +63 -0
- package/docs/flows/documentation-orchestration.md +98 -0
- package/docs/flows/e2e-test-plan-building.md +83 -0
- package/docs/flows/emergent-refinement.md +104 -0
- package/docs/flows/flow-authoring-and-mcp-tools.md +89 -0
- package/docs/flows/judge-reviewing.md +112 -0
- package/docs/flows/plan-deepening-and-research.md +107 -0
- package/docs/flows/plan-review-jury.md +114 -0
- package/docs/flows/pr-reviewing.md +54 -0
- package/docs/flows/prompt-task-execution.md +119 -0
- package/docs/flows/spec-planning.md +162 -0
- package/docs/flows/type-specific-scoping-flows.md +49 -0
- package/docs/flows/validation-and-skills-integration.md +145 -0
- package/docs/flows/wip/wip-flows.md +102 -0
- package/docs/harness/README.md +23 -0
- package/docs/harness/agent-profiles.md +84 -0
- package/docs/harness/cli/README.md +24 -0
- package/docs/harness/cli/cli-entry-and-command-discovery.md +91 -0
- package/docs/harness/cli/docs-command.md +87 -0
- package/docs/harness/cli/knowledge-command.md +91 -0
- package/docs/harness/cli/minor-cli-commands.md +65 -0
- package/docs/harness/cli/oracle-command.md +113 -0
- package/docs/harness/cli/planning-command.md +95 -0
- package/docs/harness/cli/schema-and-validation-commands.md +154 -0
- package/docs/harness/cli/search-commands.md +97 -0
- package/docs/harness/cli/spawn-command.md +136 -0
- package/docs/harness/cli/specs-command.md +102 -0
- package/docs/harness/cli/tools-command.md +122 -0
- package/docs/harness/cli/trace-command.md +122 -0
- package/docs/harness/cli-daemon.md +92 -0
- package/docs/harness/event-loop.md +184 -0
- package/docs/harness/hooks/README.md +15 -0
- package/docs/harness/hooks/context-hooks.md +96 -0
- package/docs/harness/hooks/lifecycle-and-observability-hooks.md +135 -0
- package/docs/harness/hooks/validation-hooks.md +97 -0
- package/docs/harness/test-harness.md +149 -0
- package/docs/harness/tui.md +176 -0
- package/docs/memories.md +20 -0
- package/docs/solutions/agentic-issues/premature-agent-deletion-tui-action-dependency-20260130.md +49 -0
- package/docs/solutions/agentic-issues/ref-anchor-scope-mismatch-skill-references-20260131.md +55 -0
- package/docs/solutions/agentic-issues/tautological-tests-routing-20260131.md +52 -0
- package/docs/solutions/integration_issue/blocktool-output-format-mismatch-hook-runner-20260130.md +52 -0
- package/docs/solutions/integration_issue/dual-validation-path-divergence-schema-20260130.md +66 -0
- package/docs/solutions/security-issues/unsanitized-domain-path-join-20260131.md +52 -0
- package/docs/solutions/test-failures/event-loop-mock-ordering-checkAgentWindows-20260130.md +63 -0
- package/docs/sync-cli/README.md +19 -0
- package/docs/sync-cli/cli-entrypoint-and-commands.md +39 -0
- package/docs/sync-cli/commands/README.md +11 -0
- package/docs/sync-cli/commands/pull-manifest-command.md +36 -0
- package/docs/sync-cli/commands/push-command.md +84 -0
- package/docs/sync-cli/commands/sync-command.md +71 -0
- package/docs/sync-cli/systems/README.md +14 -0
- package/docs/sync-cli/systems/git-and-github-integration.md +49 -0
- package/docs/sync-cli/systems/interactive-ui.md +43 -0
- package/docs/sync-cli/systems/manifest-and-distribution.md +51 -0
- package/docs/sync-cli/systems/path-resolution.md +42 -0
- package/package.json +46 -0
- package/scripts/install-shim.sh +40 -0
- package/scripts/pre-pack.sh +25 -0
- package/specs/harness-maintenance-skill.spec.md +138 -0
- package/specs/roadmap/git-spec-lifecycle-management.spec.md +113 -0
- package/specs/sync-init-flag.spec.md +117 -0
- package/specs/unified-workflow-orchestration.spec.md +250 -0
- package/specs/validation-tooling-practice.spec.md +98 -0
- package/specs/workflow-domain-configuration.spec.md +265 -0
- package/src/commands/pull-manifest.ts +31 -0
- package/src/commands/push.ts +344 -0
- package/src/commands/sync.ts +289 -0
- package/src/lib/constants.ts +10 -0
- package/src/lib/dotfiles.ts +36 -0
- package/src/lib/fs-utils.ts +18 -0
- package/src/lib/gh.ts +40 -0
- package/src/lib/git.ts +63 -0
- package/src/lib/gitignore.ts +167 -0
- package/src/lib/manifest.ts +121 -0
- package/src/lib/marker-sync.ts +39 -0
- package/src/lib/paths.ts +38 -0
- package/src/lib/target-lines.ts +66 -0
- package/src/lib/ui.ts +78 -0
- package/src/sync-cli.ts +120 -0
- package/target-lines.json +23 -0
- package/tsconfig.json +20 -0
package/concerns.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
1. When we implement a parallel task implementation mode (not for a while) we will need to figure out a few things:
|
|
2
|
+
A: How to have two EMERGENT_REFINEMENT tasks not choose to work on the exact same thing? (do we cap these to just 1 at a time?) (how do we merge their work if this is the case?)
|
|
3
|
+
B: Reserving specific single instance infrastructure from validation tooling. (Do we just work to make it so that all vliadation tools can be run in a completely seperate instance? Ideally yes...)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
2. When prompt loops are in effect, we should have a globally session stored flag that shows that there are prompts are currently being implemented. This will be used to stop:
|
|
7
|
+
A: Switching current spec
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Top-level documentation index covering all four domains of the all-hands framework: harness CLI, agent flows, agent configurations, and the sync CLI."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# All-Hands Documentation
|
|
6
|
+
|
|
7
|
+
Engineering knowledge for the all-hands agentic development framework. Documentation exposes code intent, key decisions, and system relationships via file references for semantic discovery.
|
|
8
|
+
|
|
9
|
+
## Domains
|
|
10
|
+
|
|
11
|
+
### Harness
|
|
12
|
+
|
|
13
|
+
The core CLI tool powering agent orchestration. Commands for planning, knowledge search, schema validation, spec management, agent spawning, MCP tooling, observability, and more. Includes the TUI, event loop, hook system, and test infrastructure.
|
|
14
|
+
|
|
15
|
+
`docs/harness/README.md`
|
|
16
|
+
|
|
17
|
+
### Flows
|
|
18
|
+
|
|
19
|
+
Workflow definitions that guide agents through tasks. Covers the full lifecycle: ideation, spec planning, prompt execution, judge reviewing, emergent refinement, compounding, coordination, and documentation generation.
|
|
20
|
+
|
|
21
|
+
`docs/flows/README.md`
|
|
22
|
+
|
|
23
|
+
### Agents
|
|
24
|
+
|
|
25
|
+
Agent configuration profiles and initiative orchestration. Defines agent types (planning, execution, quality review, orchestration, knowledge), the YAML configuration system, and how initiative types and settings.json shape agent behavior.
|
|
26
|
+
|
|
27
|
+
`docs/agents/README.md`
|
|
28
|
+
|
|
29
|
+
### Sync CLI
|
|
30
|
+
|
|
31
|
+
CLI for distributing the all-hands framework to other repositories. Handles framework syncing with conflict resolution, upstream contribution via GitHub fork/PR, manifest-based file filtering, and interactive terminal prompts.
|
|
32
|
+
|
|
33
|
+
`docs/sync-cli/README.md`
|
|
34
|
+
|
|
35
|
+
## Cross-Domain Relationships
|
|
36
|
+
|
|
37
|
+
- **Agents reference Flows**: Each agent profile in `docs/agents/README.md` points to a flow file that defines its behavior from `docs/flows/README.md`
|
|
38
|
+
- **Harness executes Agents**: The spawn command `docs/harness/cli/spawn-command.md` loads agent profiles, and the event loop `docs/harness/event-loop.md` orchestrates prompt dispatch
|
|
39
|
+
- **Hooks enforce Flows**: Context hooks `docs/harness/hooks/context-hooks.md` and validation hooks `docs/harness/hooks/validation-hooks.md` enforce flow directives at the tool level
|
|
40
|
+
- **Sync distributes Harness**: The sync CLI `docs/sync-cli/README.md` packages and distributes the harness to target repositories
|
|
41
|
+
- **Knowledge connects everything**: The knowledge command `docs/harness/cli/knowledge-command.md` indexes docs, solutions, and memories for semantic discovery across all domains
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Index of agent domain documentation covering the configuration system, agent categories (planning, execution, quality, orchestration, knowledge), and initiative orchestration."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Agents
|
|
6
|
+
|
|
7
|
+
Agent profiles define types, behaviors, and TUI integration via YAML configuration. Agents are grouped by their role in the development lifecycle.
|
|
8
|
+
|
|
9
|
+
## Configuration
|
|
10
|
+
|
|
11
|
+
| Topic | Doc |
|
|
12
|
+
|---|---|
|
|
13
|
+
| YAML schema, validation, template variables | `docs/agents/agent-configuration-system.md` |
|
|
14
|
+
| Hypothesis domains and initiative types | `docs/agents/workflow-agent-orchestration.md` |
|
|
15
|
+
|
|
16
|
+
## Agent Categories
|
|
17
|
+
|
|
18
|
+
| Category | Agents | Doc |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Planning | ideation, planner, emergent (hypothesis planner) | `docs/agents/planning-agents.md` |
|
|
21
|
+
| Execution | executor | `docs/agents/execution-agents.md` |
|
|
22
|
+
| Quality & Review | judge, pr-reviewer, e2e-test-planner | `docs/agents/quality-review-agents.md` |
|
|
23
|
+
| Orchestration | coordinator | `docs/agents/orchestration-agent.md` |
|
|
24
|
+
| Knowledge | compounder, documentor | `docs/agents/knowledge-agents.md` |
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Zod-based agent profile schema that validates YAML agent definitions, enforces template variable contracts, and normalizes configs for TUI integration"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Agent Configuration System
|
|
6
|
+
|
|
7
|
+
Agent profiles are YAML declarations that define how agents are spawned, what context they receive, and how the TUI presents them. The system uses Zod schemas for runtime validation, replacing static YAML schema files with type-safe, self-documenting validation.
|
|
8
|
+
|
|
9
|
+
## Profile Schema Fields
|
|
10
|
+
|
|
11
|
+
Every agent YAML file is validated against [ref:.allhands/harness/src/lib/schemas/agent-profile.ts:RawAgentProfileSchema:fb892e5], which enforces this contract:
|
|
12
|
+
|
|
13
|
+
| Field | Type | Default | Purpose |
|
|
14
|
+
|-------|------|---------|---------|
|
|
15
|
+
| `name` | string (required) | -- | Agent identifier, doubles as tmux window name |
|
|
16
|
+
| `flow` | string (required) | -- | Flow file relative to `.allhands/flows/` |
|
|
17
|
+
| `prompt_scoped` | boolean | `false` | When true, multiple instances spawn (one per prompt) |
|
|
18
|
+
| `message_template` | string | -- | Template with `${VAR}` interpolation for launch context |
|
|
19
|
+
| `template_vars` | array | `[]` | Required variables declared for the template |
|
|
20
|
+
| `tui_action` | string | -- | TUI action name that triggers this agent |
|
|
21
|
+
| `tui_label` | string | -- | Display label in TUI (falls back to capitalized name) |
|
|
22
|
+
| `tui_requires_spec` | boolean | `false` | Gates TUI action behind active spec selection |
|
|
23
|
+
| `non_coding` | boolean | `false` | Marks agent as non-coding, affecting downstream behaviors |
|
|
24
|
+
|
|
25
|
+
## Template Variable System
|
|
26
|
+
|
|
27
|
+
Template variables are the mechanism through which agents receive runtime context at spawn. The variable registry lives in [ref:.allhands/harness/src/lib/schemas/template-vars.ts:TemplateVars:730f114] and defines four categories:
|
|
28
|
+
|
|
29
|
+
**Path variables** -- resolve to filesystem locations:
|
|
30
|
+
- `SPEC_PATH`, `ALIGNMENT_PATH`, `PROMPTS_FOLDER`, `PROMPT_PATH`, `OUTPUT_PATH`, `PLANNING_FOLDER`
|
|
31
|
+
|
|
32
|
+
**Identifier variables** -- resolve to names or numbers:
|
|
33
|
+
- `SPEC_NAME`, `PROMPT_NUMBER` (validated as two-digit string via regex)
|
|
34
|
+
|
|
35
|
+
**Branch/context variables** -- resolve to runtime state:
|
|
36
|
+
- `BRANCH` (current git branch name)
|
|
37
|
+
|
|
38
|
+
**Spec metadata variables** -- resolve to spec properties:
|
|
39
|
+
- `SPEC_TYPE` (spec type from frontmatter: milestone, investigation, optimization, refactor, documentation, triage)
|
|
40
|
+
|
|
41
|
+
**Emergent planner variables** -- resolve to settings-driven context:
|
|
42
|
+
- `HYPOTHESIS_DOMAINS` (comma-separated list of hypothesis domains from `settings.json`)
|
|
43
|
+
|
|
44
|
+
> **Change note**: `WORKFLOW_TYPE` has been removed. It was replaced by `SPEC_TYPE`, which reads directly from spec frontmatter rather than from workflow YAML files (which have been deleted). `PROMPT_NUMBER` is no longer used by the emergent agent but remains in the registry for other agents.
|
|
45
|
+
|
|
46
|
+
Template resolution validates that every `${VAR}` in `message_template` maps to a registered variable name in [ref:.allhands/harness/src/lib/schemas/template-vars.ts:TEMPLATE_VAR_NAMES:730f114], and that the runtime context provides non-empty values for all declared `template_vars`.
|
|
47
|
+
|
|
48
|
+
## Validation Pipeline
|
|
49
|
+
|
|
50
|
+
Profile validation happens in two stages:
|
|
51
|
+
|
|
52
|
+
```mermaid
|
|
53
|
+
flowchart LR
|
|
54
|
+
YAML["YAML Parse"] --> Schema["Zod Schema\nValidation"]
|
|
55
|
+
Schema --> Normalize["normalizeProfile()"]
|
|
56
|
+
Normalize --> Semantic["validateProfileSemantics()"]
|
|
57
|
+
Semantic --> Valid["Ready to Spawn"]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
1. **Schema validation** -- [ref:.allhands/harness/src/lib/schemas/agent-profile.ts:RawAgentProfileSchema:fb892e5] checks types, applies defaults, and rejects unknown fields
|
|
61
|
+
2. **Normalization** -- [ref:.allhands/harness/src/lib/schemas/agent-profile.ts:normalizeProfile:fb892e5] transforms snake_case YAML fields to camelCase TypeScript, producing the [ref:.allhands/harness/src/lib/schemas/agent-profile.ts:AgentProfile:fb892e5] interface
|
|
62
|
+
3. **Semantic validation** -- [ref:.allhands/harness/src/lib/schemas/agent-profile.ts:validateProfileSemantics:fb892e5] performs cross-field checks:
|
|
63
|
+
- Every `${VAR}` in `message_template` must exist in `template_vars`
|
|
64
|
+
- Every entry in `template_vars` must be referenced in `message_template`
|
|
65
|
+
- Template variables must be registered in [ref:.allhands/harness/src/lib/schemas/template-vars.ts:TemplateVars:730f114]
|
|
66
|
+
|
|
67
|
+
Semantic validation returns warnings (not errors) for unused variables, allowing forward-compatible profiles.
|
|
68
|
+
|
|
69
|
+
## Non-Coding Agents
|
|
70
|
+
|
|
71
|
+
Three agents are configured with `non_coding: true`:
|
|
72
|
+
|
|
73
|
+
| Agent | Role |
|
|
74
|
+
|-------|------|
|
|
75
|
+
| Coordinator | Cross-phase orchestration |
|
|
76
|
+
| Judge | Milestone quality gate |
|
|
77
|
+
| Emergent | Hypothesis planning (plan-only, creates prompt files for executors) |
|
|
78
|
+
|
|
79
|
+
The emergent agent was rearchitected from a coding execution agent to a non-coding planning agent. It is `prompt_scoped: true` but `non_coding: true` -- multiple instances spawn to create prompt files across hypothesis domains, but none write code directly.
|
|
80
|
+
|
|
81
|
+
## Key Design Decisions
|
|
82
|
+
|
|
83
|
+
- **Snake_case YAML, camelCase TypeScript**: Agent configs are authored in YAML-idiomatic snake_case. The normalization layer bridges to TypeScript conventions, keeping both sides natural.
|
|
84
|
+
- **Closed variable registry**: Only variables registered in [ref:.allhands/harness/src/lib/schemas/template-vars.ts:TEMPLATE_VAR_NAMES:730f114] can be used. This prevents typos and ensures every variable has a documented purpose via Zod `.describe()`.
|
|
85
|
+
- **Prompt-scoped multiplexing**: The `prompt_scoped` flag distinguishes singleton agents (planner, judge, coordinator) from parallelizable agents (executor, emergent). The TUI uses this to spawn N instances for N prompts. Note that prompt-scoped does not imply coding -- the emergent agent is prompt-scoped but non-coding.
|
|
86
|
+
- **TUI as first-class concern**: The `tui_action`, `tui_label`, and `tui_requires_spec` fields embed presentation logic directly in the profile, avoiding a separate UI configuration layer.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Executor agent that implements prompt files as code changes -- the sole execution agent, one instance per prompt for parallel implementation"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Execution Agents
|
|
6
|
+
|
|
7
|
+
The executor is the only agent that produces code changes from pre-authored prompt files. It is **prompt-scoped** (`prompt_scoped: true`), meaning the harness spawns multiple parallel instances -- one per prompt. This is the core parallelism mechanism in the harness.
|
|
8
|
+
|
|
9
|
+
> **Note**: The emergent agent was previously grouped here as an execution agent. It has been rearchitected to a plan-only hypothesis planner (`non_coding: true`) and now belongs with the planning agents. See [docs/agents/planning-agents.md](planning-agents.md).
|
|
10
|
+
|
|
11
|
+
## Executor Configuration
|
|
12
|
+
|
|
13
|
+
[ref:.allhands/agents/executor.yaml::a0ae2f8]
|
|
14
|
+
|
|
15
|
+
| Field | Value |
|
|
16
|
+
|-------|-------|
|
|
17
|
+
| Flow | `PROMPT_TASK_EXECUTION.md` |
|
|
18
|
+
| Prompt scoped | Yes |
|
|
19
|
+
| Non-coding | No |
|
|
20
|
+
| TUI action | `executor` |
|
|
21
|
+
| Requires spec | Yes |
|
|
22
|
+
| Template vars | `PROMPT_PATH`, `ALIGNMENT_PATH` |
|
|
23
|
+
|
|
24
|
+
The executor is the workhorse. It receives a single prompt file path and an alignment doc, then implements exactly what the prompt specifies. Its simplicity is deliberate:
|
|
25
|
+
|
|
26
|
+
- **One prompt, one executor** -- clear ownership and bounded context per **Context is Precious**
|
|
27
|
+
- **No domain selection** -- the planner already decided what to build
|
|
28
|
+
- **Alignment doc as guardrail** -- provides project-level conventions without bloating the prompt
|
|
29
|
+
|
|
30
|
+
The executor's template injects only `PROMPT_PATH` and `ALIGNMENT_PATH`. All task scoping comes from the prompt file content itself. The first line of its message template is `DO NOT ask for any user input for this task.` -- it is fully autonomous.
|
|
31
|
+
|
|
32
|
+
## Prompt-Scoped Parallelism
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
flowchart TD
|
|
36
|
+
TUI["TUI Spawn"] --> |"N prompts"| E1["Executor 1\nPrompt 01"]
|
|
37
|
+
TUI --> E2["Executor 2\nPrompt 02"]
|
|
38
|
+
TUI --> E3["Executor 3\nPrompt 03"]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Because `prompt_scoped: true`, the TUI multiplexes executor instances across available prompt files. Each executor maps 1:1 to an existing prompt, ensuring clear ownership boundaries. The planner determines what to build; executors determine how.
|
|
42
|
+
|
|
43
|
+
## Relationship to Planning Phase
|
|
44
|
+
|
|
45
|
+
Executors cannot begin until planning produces prompt files. The upstream agents that generate prompts are:
|
|
46
|
+
|
|
47
|
+
- **Planner** -- decomposes specs into ordered prompt files during the planning phase
|
|
48
|
+
- **Emergent** -- creates `type:emergent` prompt files during the hypothesis planning phase (see [planning-agents.md](planning-agents.md))
|
|
49
|
+
|
|
50
|
+
Both produce prompt files that executors consume. The executor makes no distinction between planner-authored and emergent-authored prompts -- it implements whatever the prompt file specifies.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Compounder and documentor agents that extract and persist engineering knowledge from completed milestone work into reusable artifacts"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Knowledge Agents
|
|
6
|
+
|
|
7
|
+
Knowledge agents run **after execution completes**. They do not produce features -- they produce understanding. Both the compounder and documentor transform completed work into durable knowledge artifacts, operationalizing the **Knowledge Compounding** principle: everything feeds forward.
|
|
8
|
+
|
|
9
|
+
## Agent Comparison
|
|
10
|
+
|
|
11
|
+
| Aspect | Compounder | Documentor |
|
|
12
|
+
|--------|------------|------------|
|
|
13
|
+
| Config | [ref:.allhands/agents/compounder.yaml::c9f0e13] | [ref:.allhands/agents/documentor.yaml::b4246b9] |
|
|
14
|
+
| Flow | `COMPOUNDING.md` | `DOCUMENTATION.md` |
|
|
15
|
+
| TUI label | Compounder | Documentor |
|
|
16
|
+
| TUI action | `compound` | `compound` |
|
|
17
|
+
| Requires spec | Yes | Yes |
|
|
18
|
+
| Prompt scoped | No | No |
|
|
19
|
+
| Non-coding | No | No |
|
|
20
|
+
|
|
21
|
+
Both agents share identical template variables:
|
|
22
|
+
- `SPEC_PATH` -- the completed spec for retrospective analysis
|
|
23
|
+
- `ALIGNMENT_PATH` -- project conventions and accumulated decisions
|
|
24
|
+
- `PROMPTS_FOLDER` -- completed prompt files containing implementation history
|
|
25
|
+
|
|
26
|
+
## Shared TUI Action
|
|
27
|
+
|
|
28
|
+
Both agents use `tui_action: compound`. This groups them as a single user-facing capability -- the compounding phase -- even though they run distinct flows. The TUI presents them as related operations on the same completed work.
|
|
29
|
+
|
|
30
|
+
## Compounder Agent
|
|
31
|
+
|
|
32
|
+
The compounder extracts **decisions, patterns, pivots, and limitations** from completed prompt work. Its output compounds the organization's knowledge base, making future planning and execution benefit from past work.
|
|
33
|
+
|
|
34
|
+
What the compounder captures:
|
|
35
|
+
- Why decisions were made (not just what was built)
|
|
36
|
+
- Patterns that emerged during implementation
|
|
37
|
+
- Limitations discovered that affect future specs
|
|
38
|
+
- Best practices validated or invalidated by execution results
|
|
39
|
+
|
|
40
|
+
This directly serves **Knowledge Compounding** -- decisions, pivots, limitations, disagreements, realizations, and best practices all feed forward.
|
|
41
|
+
|
|
42
|
+
## Documentor Agent
|
|
43
|
+
|
|
44
|
+
The documentor produces **documentation artifacts** from completed work. Where the compounder extracts tacit knowledge, the documentor produces explicit documentation tied to the codebase.
|
|
45
|
+
|
|
46
|
+
The distinction matters: compounding captures organizational learning that lives in the harness knowledge base, while documentation produces artifacts (docs, READMEs, architecture decision records) that live alongside the code.
|
|
47
|
+
|
|
48
|
+
## Lifecycle Position
|
|
49
|
+
|
|
50
|
+
```mermaid
|
|
51
|
+
flowchart LR
|
|
52
|
+
Judge["Judge\n(pass verdict)"] --> Knowledge["Knowledge Phase"]
|
|
53
|
+
Knowledge --> Compounder["Compounder\n(extract learnings)"]
|
|
54
|
+
Knowledge --> Documentor["Documentor\n(produce docs)"]
|
|
55
|
+
Compounder --> KB["Knowledge Base"]
|
|
56
|
+
Documentor --> Docs["Code Documentation"]
|
|
57
|
+
KB --> Future["Future Planning\n& Execution"]
|
|
58
|
+
Docs --> Future
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Knowledge agents are the terminal phase of the milestone lifecycle. They run after the judge has approved the work, ensuring they operate on validated output rather than in-progress code. Their artifacts compound value for every subsequent milestone.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Coordinator agent for milestone-level non-coding orchestration, managing spec work progression across planning, execution, and review phases"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Orchestration Agent
|
|
6
|
+
|
|
7
|
+
The coordinator is the only agent explicitly designed for **cross-phase orchestration**. It operates at the milestone level, tracking spec progression without writing code itself.
|
|
8
|
+
|
|
9
|
+
## Configuration
|
|
10
|
+
|
|
11
|
+
[ref:.allhands/agents/coordinator.yaml::27a9130]
|
|
12
|
+
|
|
13
|
+
| Field | Value |
|
|
14
|
+
|-------|-------|
|
|
15
|
+
| Flow | `COORDINATION.md` |
|
|
16
|
+
| TUI action | `coordinator` |
|
|
17
|
+
| Non-coding | **Yes** |
|
|
18
|
+
| Prompt scoped | No |
|
|
19
|
+
| Requires spec | Yes |
|
|
20
|
+
|
|
21
|
+
## Template Context
|
|
22
|
+
|
|
23
|
+
The coordinator receives the broadest template context of any singleton agent:
|
|
24
|
+
|
|
25
|
+
- `SPEC_NAME` -- the milestone being coordinated
|
|
26
|
+
- `SPEC_PATH` -- full spec for requirement awareness
|
|
27
|
+
- `ALIGNMENT_PATH` -- project conventions and decisions
|
|
28
|
+
- `PROMPTS_FOLDER` -- visibility into prompt file state (planned, in-progress, completed)
|
|
29
|
+
|
|
30
|
+
This four-variable context gives the coordinator full situational awareness across the spec's lifecycle without requiring it to read execution outputs directly.
|
|
31
|
+
|
|
32
|
+
## Why Non-Coding Orchestration
|
|
33
|
+
|
|
34
|
+
The coordinator is one of three `non_coding: true` agents (alongside the judge and emergent). This constraint is architectural, not incidental:
|
|
35
|
+
|
|
36
|
+
- **Separation of concerns** -- coordination decisions (what to run next, what's blocked, what's done) must not be entangled with implementation
|
|
37
|
+
- **Context preservation** -- a non-coding agent avoids accumulating code-level context that would dilute its orchestration judgment, per **Context is Precious**
|
|
38
|
+
- **Role clarity** -- executors implement, the coordinator sequences; mixing these creates agents that do both poorly
|
|
39
|
+
|
|
40
|
+
## Relationship to Other Agents
|
|
41
|
+
|
|
42
|
+
```mermaid
|
|
43
|
+
flowchart TD
|
|
44
|
+
Coordinator["Coordinator\n(non-coding)"]
|
|
45
|
+
Coordinator -->|"triggers"| Planner["Planner"]
|
|
46
|
+
Coordinator -->|"monitors"| Executors["Executors"]
|
|
47
|
+
Coordinator -->|"monitors output"| Emergent["Emergent Planner\n(creates prompts)"]
|
|
48
|
+
Coordinator -->|"triggers"| Judge["Judge"]
|
|
49
|
+
|
|
50
|
+
Planner -->|"produces"| Prompts["Prompt Files"]
|
|
51
|
+
Emergent -->|"produces"| Prompts
|
|
52
|
+
Prompts -->|"consumed by"| Executors
|
|
53
|
+
Executors -->|"complete"| Coordinator
|
|
54
|
+
Judge -->|"verdict"| Coordinator
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The coordinator is the hub that connects phases. It does not directly control other agents -- the TUI handles spawning -- but it provides the decision-making layer for when phases transition. The coordinator monitors the emergent planner's output (new prompt files appearing in the prompts folder) rather than monitoring it as an executor, since the emergent agent now produces planning artifacts, not code changes. This maps to the **Quality Engineering** principle: the coordinator's role is judgment about sequencing, not implementation.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Ideation, planner, and emergent agents that handle upstream work: free-form exploration, structured spec decomposition, and hypothesis-driven prompt planning"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Planning Agents
|
|
6
|
+
|
|
7
|
+
Planning agents operate upstream of execution. They translate human intent into machine-executable prompt files -- the fundamental unit of work in the harness. Three agents divide this responsibility: ideation explores the problem space freely, the planner decomposes a spec into ordered prompts, and the emergent agent creates hypothesis-driven prompt files across quality domains.
|
|
8
|
+
|
|
9
|
+
## Agent Comparison
|
|
10
|
+
|
|
11
|
+
| Aspect | Ideation | Planner | Emergent |
|
|
12
|
+
|--------|----------|---------|----------|
|
|
13
|
+
| Config | [ref:.allhands/agents/ideation.yaml::faf0f2d] | [ref:.allhands/agents/planner.yaml::9013364] | [ref:.allhands/agents/emergent.yaml::9b6a9d4] |
|
|
14
|
+
| Flow | `IDEATION_SESSION.md` | `SPEC_PLANNING.md` | `EMERGENT_PLANNING.md` |
|
|
15
|
+
| Requires spec | No | Yes | Yes |
|
|
16
|
+
| Prompt scoped | No | No | Yes |
|
|
17
|
+
| Non-coding | No | No | **Yes** |
|
|
18
|
+
| Template vars | None | `SPEC_NAME`, `SPEC_PATH`, `PROMPTS_FOLDER` | `ALIGNMENT_PATH`, `PROMPTS_FOLDER`, `HYPOTHESIS_DOMAINS`, `BRANCH` |
|
|
19
|
+
| TUI action | `new-initiative` | `planner` | `emergent` |
|
|
20
|
+
| TUI label | Ideation | Planner | Emergent |
|
|
21
|
+
|
|
22
|
+
## Ideation Agent
|
|
23
|
+
|
|
24
|
+
The ideation agent is the only agent that requires **no spec context**. It runs the `IDEATION_SESSION.md` flow with an empty message template, making it a blank-slate exploration tool. This aligns with the **Ideation First** principle -- front-loading exploration prevents low-level decision fatigue during implementation and discovers limitations before they block progress.
|
|
25
|
+
|
|
26
|
+
Key characteristics:
|
|
27
|
+
- No `template_vars` and empty `message_template` -- the agent receives no pre-structured context
|
|
28
|
+
- Not prompt-scoped -- runs as a singleton session
|
|
29
|
+
- Produces specs and roadmap artifacts as output, feeding downstream agents
|
|
30
|
+
- TUI action `new-initiative` routes through the ideation agent with a flow override for non-milestone spec types
|
|
31
|
+
|
|
32
|
+
## Planner Agent
|
|
33
|
+
|
|
34
|
+
The planner operates on a selected spec, decomposing it into prompt files within the spec's prompts folder. It receives three template variables that scope its work:
|
|
35
|
+
|
|
36
|
+
- `SPEC_NAME` -- identifies the initiative being planned
|
|
37
|
+
- `SPEC_PATH` -- the spec file containing requirements and acceptance criteria
|
|
38
|
+
- `PROMPTS_FOLDER` -- the target directory where prompt files are written
|
|
39
|
+
|
|
40
|
+
The planner embodies **Prompt Files as Units of Work** -- its sole output is an ordered set of prompt files that executors will pick up. Each prompt file scopes 3-5 tasks with clear validation requirements, keeping downstream context bounded per **Context is Precious**.
|
|
41
|
+
|
|
42
|
+
## Emergent Agent (Hypothesis Planner)
|
|
43
|
+
|
|
44
|
+
The emergent agent creates hypothesis-driven prompt files across quality domains. Unlike the planner (which decomposes a spec top-down), the emergent agent identifies quality gaps and generates `type:emergent` prompt files that executors later implement. It is the only planning agent that is both **prompt-scoped** and **non-coding**:
|
|
45
|
+
|
|
46
|
+
- `non_coding: true` -- creates prompt files but does not write code
|
|
47
|
+
- `prompt_scoped: true` -- multiple instances spawn in parallel, each exploring a different hypothesis domain
|
|
48
|
+
- Flow: `EMERGENT_PLANNING.md` -- a plan-only flow (not an execution flow)
|
|
49
|
+
|
|
50
|
+
Template variables provide the planning context:
|
|
51
|
+
- `ALIGNMENT_PATH` -- project-level conventions and decisions
|
|
52
|
+
- `PROMPTS_FOLDER` -- where to write new prompt files
|
|
53
|
+
- `HYPOTHESIS_DOMAINS` -- available quality domains from `settings.json` (e.g., `testing, stability, performance, feature, ux, integration`)
|
|
54
|
+
- `BRANCH` -- current git branch for scoping
|
|
55
|
+
|
|
56
|
+
The emergent agent's message template instructs it to **select a domain that diversifies from prior prompts**, always producing at least one prompt file. It operates in three progressive work modes:
|
|
57
|
+
|
|
58
|
+
1. **Core Goal Work** -- domains directly supporting the spec's acceptance criteria
|
|
59
|
+
2. **Adjacent Improvements** -- domains that strengthen surrounding code quality
|
|
60
|
+
3. **Novel Experiments** -- tangential domains that require feature flags, exploring beyond the spec's boundaries
|
|
61
|
+
|
|
62
|
+
As core goals are met, the agent shifts progressively toward more tangential work. This creates a self-organizing planning cycle where each instance explores a different facet of quality, producing prompt files that executors consume downstream.
|
|
63
|
+
|
|
64
|
+
> **Key decision**: "Emergent" is the canonical agent name; "hypothesis planner" describes its functional role. The agent was rearchitected from a combined plan-and-execute agent (previously `non_coding: false`, flow `EMERGENT_REFINEMENT_EXECUTION.md`) to a plan-only agent. It no longer uses `PROMPT_NUMBER` -- prompt numbering is handled by the prompts folder conventions.
|
|
65
|
+
|
|
66
|
+
## Lifecycle Position
|
|
67
|
+
|
|
68
|
+
```mermaid
|
|
69
|
+
flowchart LR
|
|
70
|
+
Ideation["Ideation\n(explore)"] --> Spec["Spec Created"]
|
|
71
|
+
Spec --> Planner["Planner\n(decompose)"]
|
|
72
|
+
Planner --> Prompts["Prompt Files"]
|
|
73
|
+
Spec --> Emergent["Emergent\n(hypothesis plan)"]
|
|
74
|
+
Emergent --> EPrompts["type:emergent\nPrompt Files"]
|
|
75
|
+
Prompts --> Execution["Executor"]
|
|
76
|
+
EPrompts --> Execution
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Ideation is optional and human-initiated. The planner and emergent agent both produce prompt files, but through different mechanisms:
|
|
80
|
+
|
|
81
|
+
- **Planner** -- deterministic top-down decomposition of a spec into ordered prompts
|
|
82
|
+
- **Emergent** -- hypothesis-driven exploration of quality gaps, creating emergent prompts
|
|
83
|
+
|
|
84
|
+
Executors make no distinction between planner-authored and emergent-authored prompts. Both are consumed identically. This means all three planning agents feed into the same execution phase, with the emergent agent providing lateral quality coverage that the planner's structured decomposition may miss.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Judge, PR reviewer, and E2E test planner agents that validate milestone quality: judge reviews holistically, PR reviewer processes feedback, test planner builds verification plans"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Quality and Review Agents
|
|
6
|
+
|
|
7
|
+
Three agents handle validation and review at different stages of the lifecycle. They share a common purpose -- ensuring work meets acceptance criteria -- but operate at different scopes and produce different outputs.
|
|
8
|
+
|
|
9
|
+
## Agent Overview
|
|
10
|
+
|
|
11
|
+
| Aspect | Judge | PR Reviewer | E2E Test Planner |
|
|
12
|
+
|--------|-------|-------------|------------------|
|
|
13
|
+
| Config | [ref:.allhands/agents/judge.yaml::597e87f] | [ref:.allhands/agents/pr-reviewer.yaml::631b3e9] | [ref:.allhands/agents/e2e-test-planner.yaml::89753a5] |
|
|
14
|
+
| Flow | `JUDGE_REVIEWING.md` | `PR_REVIEWING.md` | `E2E_TEST_PLAN_BUILDING.md` |
|
|
15
|
+
| TUI label | Review Jury | Review PR | E2E Tests |
|
|
16
|
+
| Non-coding | **Yes** | No | No |
|
|
17
|
+
| Requires spec | Yes | Yes | Yes |
|
|
18
|
+
| Prompt scoped | No | No | No |
|
|
19
|
+
|
|
20
|
+
## Judge Agent
|
|
21
|
+
|
|
22
|
+
The judge is the milestone-level quality gate. It reviews completed work against the spec's acceptance criteria, operating as a **non-coding** agent (`non_coding: true`). This distinction matters: the judge evaluates but does not modify code.
|
|
23
|
+
|
|
24
|
+
Template variables:
|
|
25
|
+
- `SPEC_NAME` -- identifies what milestone is being judged
|
|
26
|
+
- `ALIGNMENT_PATH` -- provides project conventions for evaluation context
|
|
27
|
+
|
|
28
|
+
The TUI action `review-jury` signals its role as an adjudicator. The judge embodies **Agentic Validation Tooling** -- programmatic validation that makes human supervision redundant for routine quality checks. Its output determines whether a milestone proceeds to merge or returns for rework.
|
|
29
|
+
|
|
30
|
+
## PR Reviewer Agent
|
|
31
|
+
|
|
32
|
+
The PR reviewer translates external PR feedback (GitHub comments, review threads) into actionable prompt-level work. Unlike the judge, it **is a coding agent** -- it can create new prompt files or modify existing ones based on review feedback.
|
|
33
|
+
|
|
34
|
+
Template variables:
|
|
35
|
+
- `SPEC_NAME` -- the milestone under review
|
|
36
|
+
- `ALIGNMENT_PATH` -- project conventions
|
|
37
|
+
- `PROMPTS_FOLDER` -- where to write remediation prompts if needed
|
|
38
|
+
|
|
39
|
+
This agent bridges the gap between human PR review and the prompt-based execution model. Rather than expecting developers to manually address review comments, the PR reviewer converts feedback into the harness's native work format.
|
|
40
|
+
|
|
41
|
+
## E2E Test Planner Agent
|
|
42
|
+
|
|
43
|
+
The E2E test planner produces structured test plans from spec requirements. It receives the richest template context of the three review agents:
|
|
44
|
+
|
|
45
|
+
- `PLANNING_FOLDER` -- the `.planning/{branch}` directory for test plan artifacts
|
|
46
|
+
- `SPEC_PATH` -- full spec for requirement extraction
|
|
47
|
+
- `ALIGNMENT_PATH` -- project conventions including testing patterns
|
|
48
|
+
- `OUTPUT_PATH` -- explicit output location for the generated test plan
|
|
49
|
+
|
|
50
|
+
This agent operationalizes the **Agentic Validation Tooling** principle by creating verification infrastructure. Its test plans feed back into execution agents as validation requirements, closing the loop between "what should we test" and "is it working."
|
|
51
|
+
|
|
52
|
+
## Review Lifecycle Position
|
|
53
|
+
|
|
54
|
+
```mermaid
|
|
55
|
+
flowchart TD
|
|
56
|
+
Execution["Execution Complete"] --> Judge["Judge\n(milestone review)"]
|
|
57
|
+
Judge -->|"Pass"| PR["PR Created"]
|
|
58
|
+
Judge -->|"Fail"| Rework["Back to Execution"]
|
|
59
|
+
PR --> PRReview["PR Reviewer\n(feedback triage)"]
|
|
60
|
+
PRReview -->|"Remediation prompts"| Execution
|
|
61
|
+
|
|
62
|
+
Spec["Spec Created"] --> E2E["E2E Test Planner"]
|
|
63
|
+
E2E -->|"Test plan"| Validation["Validation Artifacts"]
|
|
64
|
+
Validation --> Judge
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The judge sits at the convergence point: it consumes execution output and test plan artifacts to render a verdict. The PR reviewer operates post-merge-request, handling the external feedback loop. The E2E test planner can run early -- as soon as a spec exists -- producing validation criteria that inform both execution and judgment.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "How hypothesis domains flow from settings.json to emergent planning agents, replacing the deleted workflow YAML system with initiative-type-driven orchestration"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Workflow-Agent Orchestration
|
|
6
|
+
|
|
7
|
+
Hypothesis domains shape how the emergent agent explores quality dimensions during planning. These domains were previously defined in workflow YAML files (`.allhands/workflows/milestone.yaml`, `.allhands/workflows/debugging.yaml`). That entire system has been deleted. Hypothesis domains now come from `settings.json` via `EmergentSettings`, and the concept of "workflow configurations" is replaced by **initiative types** -- six spec types that determine how work flows through the harness.
|
|
8
|
+
|
|
9
|
+
## What Changed
|
|
10
|
+
|
|
11
|
+
| Before | After |
|
|
12
|
+
|--------|-------|
|
|
13
|
+
| `.allhands/workflows/` directory with YAML files | **Deleted entirely** |
|
|
14
|
+
| `milestone.yaml`, `debugging.yaml` configs | Hypothesis domains in `settings.json` |
|
|
15
|
+
| `WORKFLOW_TYPE` template variable | `SPEC_TYPE` template variable |
|
|
16
|
+
| Two workflow types (milestone, debugging) | Six initiative types via spec frontmatter |
|
|
17
|
+
| Workflow loader (`workflow.ts`, `workflows.ts`) | Settings-based domain resolution |
|
|
18
|
+
|
|
19
|
+
## Initiative Types
|
|
20
|
+
|
|
21
|
+
The harness now supports six spec types, each representing a distinct initiative category:
|
|
22
|
+
|
|
23
|
+
- `milestone` -- feature development with full planning-execution cycle
|
|
24
|
+
- `investigation` -- exploratory analysis and research
|
|
25
|
+
- `optimization` -- performance and efficiency improvements
|
|
26
|
+
- `refactor` -- structural code improvements
|
|
27
|
+
- `documentation` -- knowledge artifact production
|
|
28
|
+
- `triage` -- issue diagnosis and resolution
|
|
29
|
+
|
|
30
|
+
The spec type is parsed from frontmatter and made available via the [ref:.allhands/harness/src/lib/schemas/template-vars.ts:TemplateVars:730f114] `SPEC_TYPE` variable. Agents receive this at spawn, enabling type-aware behavior without separate workflow configuration files.
|
|
31
|
+
|
|
32
|
+
## Hypothesis Domains
|
|
33
|
+
|
|
34
|
+
Hypothesis domains remain the creative constraint mechanism for the emergent agent. Each domain represents a category of planning work the emergent agent can self-assign when creating prompt files.
|
|
35
|
+
|
|
36
|
+
The domain list now comes from `settings.json` under `emergent.hypothesisDomains` (`EmergentSettings`), rather than from per-workflow YAML files. This centralizes domain configuration alongside other emergent agent settings.
|
|
37
|
+
|
|
38
|
+
The emergent agent's [ref:.allhands/agents/emergent.yaml::9b6a9d4] template receives domains via the `HYPOTHESIS_DOMAINS` template variable. The agent selects a domain that diversifies from prior prompts, creating organic coverage across quality dimensions.
|
|
39
|
+
|
|
40
|
+
## How Domains Flow to the Emergent Agent
|
|
41
|
+
|
|
42
|
+
```mermaid
|
|
43
|
+
flowchart TD
|
|
44
|
+
Settings["settings.json\nemergent.hypothesisDomains"] -->|"domain list"| TV["HYPOTHESIS_DOMAINS\ntemplate variable"]
|
|
45
|
+
Spec["Spec frontmatter\ntype field"] -->|"parsed"| ST["SPEC_TYPE\ntemplate variable"]
|
|
46
|
+
TV --> Emergent["Emergent Agent\n(non_coding, plan-only)"]
|
|
47
|
+
ST --> Emergent
|
|
48
|
+
Emergent -->|"creates"| Prompt["type:emergent\nPrompt File"]
|
|
49
|
+
Prompt -->|"consumed by"| Executor["Executor Agent"]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The emergent agent is now `non_coding: true` -- it creates prompt files but does not implement them. Executors pick up emergent-authored prompts the same way they pick up planner-authored prompts.
|
|
53
|
+
|
|
54
|
+
## Domain Selection as Quality Engineering
|
|
55
|
+
|
|
56
|
+
This architecture embodies **Quality Engineering (Not Quantity Engineering)**:
|
|
57
|
+
|
|
58
|
+
- Domains are **constraints, not assignments** -- the emergent agent chooses within them, it does not receive directives
|
|
59
|
+
- The domain list defines the **quality surface area** -- what dimensions matter for this initiative
|
|
60
|
+
- Agents are instructed that **tangential domains require feature flags**, creating a natural risk gradient
|
|
61
|
+
- The emergent agent's `BRANCH` template variable provides git context for scoping prompt files to the current work
|
|
62
|
+
|
|
63
|
+
## Extending Initiative Types
|
|
64
|
+
|
|
65
|
+
Adding a new initiative type means:
|
|
66
|
+
1. Adding a spec type to the frontmatter schema
|
|
67
|
+
2. Updating `SPEC_TYPE` validation to include the new type
|
|
68
|
+
|
|
69
|
+
No agent profiles need to change. The emergent agent's template already interpolates `HYPOTHESIS_DOMAINS` and `SPEC_TYPE` generically -- it adapts to whatever the settings and spec provide. This separation of initiative concerns from agent definitions keeps the system composable per **Context is Precious**.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Index of all flow documentation covering the agent workflow lifecycle from ideation through compounding, including review, research, coordination, and documentation flows."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Flows
|
|
6
|
+
|
|
7
|
+
Workflow definitions that guide agents through tasks. Flows follow a lifecycle from ideation through execution to knowledge compounding.
|
|
8
|
+
|
|
9
|
+
## Lifecycle Flows
|
|
10
|
+
|
|
11
|
+
| Phase | Flow | Doc |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| Foundation | Core harness integration | `docs/flows/core-harness-integration.md` |
|
|
14
|
+
| Ideation | Spec planning (ideation + type-aware planning) | `docs/flows/spec-planning.md` |
|
|
15
|
+
| Scoping | Type-specific scoping flows (5 initiative types) | `docs/flows/type-specific-scoping-flows.md` |
|
|
16
|
+
| Pre-execution | Plan review jury | `docs/flows/plan-review-jury.md` |
|
|
17
|
+
| Research | Plan deepening and research | `docs/flows/plan-deepening-and-research.md` |
|
|
18
|
+
| Execution | Prompt task execution | `docs/flows/prompt-task-execution.md` |
|
|
19
|
+
| Refinement | Emergent refinement (hypothesis planner, plan-only) | `docs/flows/emergent-refinement.md` |
|
|
20
|
+
| Post-execution | Judge reviewing | `docs/flows/judge-reviewing.md` |
|
|
21
|
+
| Feedback | PR reviewing | `docs/flows/pr-reviewing.md` |
|
|
22
|
+
| Coordination | Coordination services | `docs/flows/coordination.md` |
|
|
23
|
+
| Knowledge | Compounding | `docs/flows/compounding.md` |
|
|
24
|
+
|
|
25
|
+
## Initiative Scoping Flows
|
|
26
|
+
|
|
27
|
+
| Topic | Doc |
|
|
28
|
+
|---|---|
|
|
29
|
+
| Type-specific scoping (investigation, optimization, refactor, documentation, triage) | `docs/flows/type-specific-scoping-flows.md` |
|
|
30
|
+
|
|
31
|
+
## Supporting Flows
|
|
32
|
+
|
|
33
|
+
| Topic | Doc |
|
|
34
|
+
|---|---|
|
|
35
|
+
| Documentation pipeline | `docs/flows/documentation-orchestration.md` |
|
|
36
|
+
| E2E test plan building | `docs/flows/e2e-test-plan-building.md` |
|
|
37
|
+
| Validation suites and skills | `docs/flows/validation-and-skills-integration.md` |
|
|
38
|
+
| Flow authoring and MCP tools | `docs/flows/flow-authoring-and-mcp-tools.md` |
|
|
39
|
+
|
|
40
|
+
## Work in Progress
|
|
41
|
+
|
|
42
|
+
| Topic | Doc |
|
|
43
|
+
|---|---|
|
|
44
|
+
| Debug investigation and memory recall | `docs/flows/wip/wip-flows.md` |
|