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
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: triage
|
|
3
|
+
type: triage
|
|
4
|
+
planning_depth: focused
|
|
5
|
+
jury_required: false
|
|
6
|
+
max_tangential_hypotheses: 1
|
|
7
|
+
required_ideation_questions:
|
|
8
|
+
- "Describe the external signals"
|
|
9
|
+
- "What's the impact and urgency?"
|
|
10
|
+
- "What outcome do you need?"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Domain Knowledge
|
|
14
|
+
|
|
15
|
+
### External Signal Vocabulary
|
|
16
|
+
|
|
17
|
+
Triage specs are driven by external signals that demand attention. Signal types to surface and categorize:
|
|
18
|
+
|
|
19
|
+
| Signal Type | Examples |
|
|
20
|
+
|-------------|----------|
|
|
21
|
+
| **Error reports** | Stack traces, crash reports, error rate spikes |
|
|
22
|
+
| **Analytics anomalies** | Conversion drops, usage pattern shifts, funnel breakdowns |
|
|
23
|
+
| **Support tickets** | User complaints, feature requests, confusion patterns |
|
|
24
|
+
| **Alerts** | Monitoring alerts, SLA breaches, resource exhaustion warnings |
|
|
25
|
+
|
|
26
|
+
> **Note**: Full external source integration (PostHog, Sentry, PagerDuty) is deferred. This domain uses manually provided signal data.
|
|
27
|
+
|
|
28
|
+
### Impact/Urgency Framework
|
|
29
|
+
|
|
30
|
+
Triage prioritization is grounded in impact and urgency dimensions:
|
|
31
|
+
|
|
32
|
+
| Dimension | Factors |
|
|
33
|
+
|-----------|---------|
|
|
34
|
+
| **Users affected** | Single user, subset, all users, public-facing |
|
|
35
|
+
| **Revenue impact** | Direct revenue loss, conversion impact, churn risk |
|
|
36
|
+
| **SLA risk** | Uptime commitments, response time guarantees, contractual obligations |
|
|
37
|
+
| **Escalation trajectory** | Getting worse, stable, intermittent |
|
|
38
|
+
|
|
39
|
+
### Outcome Taxonomy
|
|
40
|
+
|
|
41
|
+
Triage outcomes range from diagnosis to action:
|
|
42
|
+
|
|
43
|
+
| Outcome | Description |
|
|
44
|
+
|---------|-------------|
|
|
45
|
+
| **Root cause identification** | Diagnose the issue, document findings |
|
|
46
|
+
| **Hotfix** | Ship a targeted fix for the immediate problem |
|
|
47
|
+
| **Incident report** | Document what happened, impact, and prevention |
|
|
48
|
+
| **Escalation** | Route to appropriate team or priority queue |
|
|
49
|
+
|
|
50
|
+
## Ideation Guidance
|
|
51
|
+
|
|
52
|
+
Per **Context is Precious**, triage needs external data to ground decisions in reality. The interview captures signal data that would otherwise require tool integration.
|
|
53
|
+
|
|
54
|
+
### Probe Guidance
|
|
55
|
+
|
|
56
|
+
- Probe vague signal descriptions — demand specific error messages, metrics, or user reports
|
|
57
|
+
- Distinguish urgency from importance — time-sensitive vs high-impact may require different approaches
|
|
58
|
+
|
|
59
|
+
### Output Sections
|
|
60
|
+
|
|
61
|
+
Spec body sections for triage domain:
|
|
62
|
+
- **Motivation**: External signals and their impact
|
|
63
|
+
- **Goals**: Desired triage outcome
|
|
64
|
+
- **Technical Considerations**: Manually provided signal data
|
|
65
|
+
|
|
66
|
+
## Planning Considerations
|
|
67
|
+
|
|
68
|
+
### External Signal Integration (Deferred)
|
|
69
|
+
|
|
70
|
+
Full integration with external signal sources (PostHog, Sentry, PagerDuty) is deferred to a future spec. Current planning relies on engineer-provided signal data.
|
|
71
|
+
|
|
72
|
+
### Urgency-Driven Prioritization
|
|
73
|
+
|
|
74
|
+
Triage planning should be urgency-aware:
|
|
75
|
+
- High urgency signals may require immediate hotfix prompts before diagnosis
|
|
76
|
+
- Lower urgency allows for thorough investigation-style planning
|
|
77
|
+
- Escalation trajectory informs whether the triage can be methodical or must be rapid
|
|
78
|
+
|
|
79
|
+
### Prompt Output Range
|
|
80
|
+
|
|
81
|
+
Triage specs produce 1-3 focused prompts. Triage is inherently rapid — minimal prompts with clear outcomes.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
These claude agents are included in order to prevent the default claude agents from being used, prefering these to be run that tightly align with the harness flows.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: explorer
|
|
3
|
+
description: Must use for codebase exploration tasks. Fast, read-only codebase exploration agent. Use for file discovery, code search, understanding implementations, finding patterns, and gathering context. MUST USE INSTEAD OF THE DEFAULT CLAUDE EXPLORER AGENT.
|
|
4
|
+
tools: Read, Glob, Grep, Bash, LSP
|
|
5
|
+
model: opus
|
|
6
|
+
color: green
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You MUST follow the rules in:
|
|
10
|
+
@.allhands/flows/shared/CODEBASE_UNDERSTANDING.md
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: researcher
|
|
3
|
+
description: |
|
|
4
|
+
External research specialist with web search capability. Use for ANY external information gathering: API docs, library documentation, best practices, implementation patterns, external URLs. Cannot implement - discovery only.
|
|
5
|
+
tools: Read, Glob, Grep, Bash
|
|
6
|
+
model: opus
|
|
7
|
+
color: blue
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You MUST follow the rules in:
|
|
11
|
+
@.allhands/flows/shared/RESEARCH_GUIDANCE.md
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-runner
|
|
3
|
+
description: Must use when spawning a sub-task requiring a read to a flow md file.
|
|
4
|
+
model: opus
|
|
5
|
+
color: yellow
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Read and follow the instructions in the flow md file provided. Output concisely and to the point, ensuring to include everything requested of you.
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
|
3
|
+
"hooks": {
|
|
4
|
+
"SessionStart": [
|
|
5
|
+
{
|
|
6
|
+
"matcher": "*",
|
|
7
|
+
"hooks": [
|
|
8
|
+
{
|
|
9
|
+
"type": "command",
|
|
10
|
+
"command": "ah hooks observability session-start"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "command",
|
|
14
|
+
"command": "ah hooks session tldr-warm"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"UserPromptSubmit": [
|
|
20
|
+
{
|
|
21
|
+
"matcher": "*",
|
|
22
|
+
"hooks": [
|
|
23
|
+
{
|
|
24
|
+
"type": "command",
|
|
25
|
+
"command": "ah hooks observability prompt-submit"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "command",
|
|
29
|
+
"command": "ah hooks context impact-refactor",
|
|
30
|
+
"timeout": 10
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"PreToolUse": [
|
|
36
|
+
{
|
|
37
|
+
"matcher": "(Task|Bash|Write|Edit|AskUserQuestion|EnterPlanMode|ExitPlanMode|LSP)",
|
|
38
|
+
"hooks": [
|
|
39
|
+
{
|
|
40
|
+
"type": "command",
|
|
41
|
+
"command": "ah hooks observability tool-pre"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"matcher": "Grep",
|
|
47
|
+
"hooks": [
|
|
48
|
+
{
|
|
49
|
+
"type": "command",
|
|
50
|
+
"command": "ah hooks context search-router"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"matcher": "Edit",
|
|
56
|
+
"hooks": [
|
|
57
|
+
{
|
|
58
|
+
"type": "command",
|
|
59
|
+
"command": "ah hooks context signature"
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"matcher": "(WebFetch|Bash)",
|
|
65
|
+
"hooks": [
|
|
66
|
+
{
|
|
67
|
+
"type": "command",
|
|
68
|
+
"command": "ah hooks enforcement github-url"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"matcher": "WebFetch",
|
|
74
|
+
"hooks": [
|
|
75
|
+
{
|
|
76
|
+
"type": "command",
|
|
77
|
+
"command": "ah hooks enforcement research-fetch"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"matcher": "WebSearch",
|
|
83
|
+
"hooks": [
|
|
84
|
+
{
|
|
85
|
+
"type": "command",
|
|
86
|
+
"command": "ah hooks enforcement research-search"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"matcher": "Task",
|
|
92
|
+
"hooks": [
|
|
93
|
+
{
|
|
94
|
+
"type": "command",
|
|
95
|
+
"command": "ah hooks context tldr-inject"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"type": "command",
|
|
99
|
+
"command": "ah hooks context arch-inject"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"matcher": "Read",
|
|
105
|
+
"hooks": [
|
|
106
|
+
{
|
|
107
|
+
"type": "command",
|
|
108
|
+
"command": "ah hooks context read-enforcer",
|
|
109
|
+
"timeout": 20
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"matcher": "(Write|Edit)",
|
|
115
|
+
"hooks": [
|
|
116
|
+
{
|
|
117
|
+
"type": "command",
|
|
118
|
+
"command": "ah hooks validation schema-pre"
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"matcher": "TaskOutput",
|
|
124
|
+
"hooks": [
|
|
125
|
+
{
|
|
126
|
+
"type": "command",
|
|
127
|
+
"command": "ah hooks context transcript-safeguard-pre",
|
|
128
|
+
"timeout": 90
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"PostToolUse": [
|
|
134
|
+
{
|
|
135
|
+
"matcher": "(Task|Bash|Write|Edit)",
|
|
136
|
+
"hooks": [
|
|
137
|
+
{
|
|
138
|
+
"type": "command",
|
|
139
|
+
"command": "ah hooks observability tool-post"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"matcher": "(Write|Edit)",
|
|
145
|
+
"hooks": [
|
|
146
|
+
{
|
|
147
|
+
"type": "command",
|
|
148
|
+
"command": "ah hooks validation diagnostics"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"type": "command",
|
|
152
|
+
"command": "ah hooks validation format"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "command",
|
|
156
|
+
"command": "ah hooks context edit-notify"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
"PostToolUseFailure": [
|
|
162
|
+
{
|
|
163
|
+
"matcher": "*",
|
|
164
|
+
"hooks": [
|
|
165
|
+
{
|
|
166
|
+
"type": "command",
|
|
167
|
+
"command": "ah hooks observability tool-failure"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"Stop": [
|
|
173
|
+
{
|
|
174
|
+
"matcher": "*",
|
|
175
|
+
"hooks": [
|
|
176
|
+
{
|
|
177
|
+
"type": "command",
|
|
178
|
+
"command": "ah hooks observability agent-stop"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"type": "command",
|
|
182
|
+
"command": "DISABLE_DAEMON=true ah hooks lifecycle agent-stop"
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"SessionEnd": [
|
|
188
|
+
{
|
|
189
|
+
"matcher": "*",
|
|
190
|
+
"hooks": [
|
|
191
|
+
{
|
|
192
|
+
"type": "command",
|
|
193
|
+
"command": "DISABLE_DAEMON=true ah hooks lifecycle agent-stop"
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"PreCompact": [
|
|
199
|
+
{
|
|
200
|
+
"matcher": "*",
|
|
201
|
+
"hooks": [
|
|
202
|
+
{
|
|
203
|
+
"type": "command",
|
|
204
|
+
"command": "ah hooks observability agent-compact"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "command",
|
|
208
|
+
"command": "DISABLE_DAEMON=true ah hooks lifecycle agent-compact"
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"env": {
|
|
215
|
+
"ENABLE_LSP_TOOL": "1"
|
|
216
|
+
},
|
|
217
|
+
"permissions": {
|
|
218
|
+
"deny": [
|
|
219
|
+
"Task(claude-code-guide)",
|
|
220
|
+
"Task(Plan)",
|
|
221
|
+
"Task(Explore)"
|
|
222
|
+
],
|
|
223
|
+
"ask": []
|
|
224
|
+
},
|
|
225
|
+
"enableAllProjectMcpServers": false,
|
|
226
|
+
"enabledPlugins": {
|
|
227
|
+
"typescript-lsp@claude-plugins-official": true,
|
|
228
|
+
"pyright-lsp@claude-plugins-official": true,
|
|
229
|
+
"swift-lsp@claude-plugins-official": true
|
|
230
|
+
}
|
|
231
|
+
}
|
package/.env.ai.example
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: Publish Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
id-token: write # Required for OIDC
|
|
10
|
+
contents: write # Required for pushing version bump
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
19
|
+
|
|
20
|
+
- uses: actions/setup-node@v4
|
|
21
|
+
with:
|
|
22
|
+
node-version: '20'
|
|
23
|
+
registry-url: 'https://registry.npmjs.org'
|
|
24
|
+
|
|
25
|
+
- name: Update npm
|
|
26
|
+
run: npm install -g npm@latest
|
|
27
|
+
|
|
28
|
+
- run: npm ci
|
|
29
|
+
|
|
30
|
+
- name: Ensure version is higher than published
|
|
31
|
+
run: |
|
|
32
|
+
CURRENT=$(node -p "require('./package.json').version")
|
|
33
|
+
LATEST=$(npm view all-hands version 2>/dev/null || echo "0.0.0")
|
|
34
|
+
|
|
35
|
+
# Compare versions using node
|
|
36
|
+
NEEDS_BUMP=$(node -e "
|
|
37
|
+
const current = '$CURRENT'.split('.').map(Number);
|
|
38
|
+
const latest = '$LATEST'.split('.').map(Number);
|
|
39
|
+
const needsBump = current[0] < latest[0] ||
|
|
40
|
+
(current[0] === latest[0] && current[1] < latest[1]) ||
|
|
41
|
+
(current[0] === latest[0] && current[1] === latest[1] && current[2] <= latest[2]);
|
|
42
|
+
console.log(needsBump ? 'true' : 'false');
|
|
43
|
+
")
|
|
44
|
+
|
|
45
|
+
if [ "$NEEDS_BUMP" = "true" ]; then
|
|
46
|
+
echo "Local $CURRENT <= published $LATEST, bumping to patch above $LATEST..."
|
|
47
|
+
npm version $LATEST --no-git-tag-version --allow-same-version
|
|
48
|
+
npm version patch --no-git-tag-version
|
|
49
|
+
echo "BUMPED=true" >> $GITHUB_ENV
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
- run: npm run build --if-present
|
|
53
|
+
|
|
54
|
+
- name: Rename dotfiles for npm pack
|
|
55
|
+
run: ./scripts/pre-pack.sh
|
|
56
|
+
|
|
57
|
+
- name: Publish to npm
|
|
58
|
+
run: npm publish
|
|
59
|
+
env:
|
|
60
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
61
|
+
|
|
62
|
+
- name: Push version bump
|
|
63
|
+
if: env.BUMPED == 'true'
|
|
64
|
+
run: |
|
|
65
|
+
git config user.name "github-actions[bot]"
|
|
66
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
67
|
+
git add package.json package-lock.json
|
|
68
|
+
git commit -m "chore: bump version"
|
|
69
|
+
git push
|
package/.internal.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Files explicitly withheld from distribution to consumer repos",
|
|
3
|
+
"internal": [
|
|
4
|
+
"src/**",
|
|
5
|
+
"bin/**",
|
|
6
|
+
"tsconfig.json",
|
|
7
|
+
"scripts/**",
|
|
8
|
+
".internal.json",
|
|
9
|
+
".github/**",
|
|
10
|
+
".gitignore",
|
|
11
|
+
".tldrignore",
|
|
12
|
+
"docs/**",
|
|
13
|
+
"README.md",
|
|
14
|
+
"CLAUDE.md",
|
|
15
|
+
"package.json",
|
|
16
|
+
"package-lock.json",
|
|
17
|
+
".env.ai.example",
|
|
18
|
+
".planning/**",
|
|
19
|
+
".worktree/**",
|
|
20
|
+
"principles.md",
|
|
21
|
+
".allhands/node_modules/**",
|
|
22
|
+
".allhands/package-lock.json",
|
|
23
|
+
".claude/envoy/**",
|
|
24
|
+
".claude/backup-skills/**",
|
|
25
|
+
".claude/settings.local.json",
|
|
26
|
+
".git/**",
|
|
27
|
+
"scripts/**",
|
|
28
|
+
"target-lines.json",
|
|
29
|
+
".reposearch/**",
|
|
30
|
+
"concerns.md",
|
|
31
|
+
"specs/**",
|
|
32
|
+
".allhands/docs.local.json"
|
|
33
|
+
],
|
|
34
|
+
"initOnly": [
|
|
35
|
+
".allhands/skills/**",
|
|
36
|
+
"!.allhands/skills/claude-code-patterns/**",
|
|
37
|
+
"!.allhands/skills/harness-maintenance/**",
|
|
38
|
+
".allhands/validation/**",
|
|
39
|
+
".allhands/settings.json",
|
|
40
|
+
".allhands/docs.json",
|
|
41
|
+
".tldr/config.json",
|
|
42
|
+
".claude/settings.json"
|
|
43
|
+
],
|
|
44
|
+
"$distribution_comment": "What DOES get distributed: .allhands/ (flows, harness, agents, skills, schemas, validation), .claude/ (agents)"
|
|
45
|
+
}
|
package/.tldrignore
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# TLDR ignore patterns (gitignore syntax)
|
|
2
|
+
# Auto-generated - review and customize for your project
|
|
3
|
+
# Docs: https://git-scm.com/docs/gitignore
|
|
4
|
+
|
|
5
|
+
# ===================
|
|
6
|
+
# Dependencies
|
|
7
|
+
# ===================
|
|
8
|
+
node_modules/
|
|
9
|
+
.venv/
|
|
10
|
+
venv/
|
|
11
|
+
env/
|
|
12
|
+
__pycache__/
|
|
13
|
+
.tox/
|
|
14
|
+
.nox/
|
|
15
|
+
.pytest_cache/
|
|
16
|
+
.mypy_cache/
|
|
17
|
+
.ruff_cache/
|
|
18
|
+
vendor/
|
|
19
|
+
Pods/
|
|
20
|
+
|
|
21
|
+
# ===================
|
|
22
|
+
# Build outputs
|
|
23
|
+
# ===================
|
|
24
|
+
dist/
|
|
25
|
+
build/
|
|
26
|
+
out/
|
|
27
|
+
target/
|
|
28
|
+
*.egg-info/
|
|
29
|
+
*.whl
|
|
30
|
+
*.pyc
|
|
31
|
+
*.pyo
|
|
32
|
+
|
|
33
|
+
# ===================
|
|
34
|
+
# Binary/large files
|
|
35
|
+
# ===================
|
|
36
|
+
*.so
|
|
37
|
+
*.dylib
|
|
38
|
+
*.dll
|
|
39
|
+
*.exe
|
|
40
|
+
*.bin
|
|
41
|
+
*.o
|
|
42
|
+
*.a
|
|
43
|
+
*.lib
|
|
44
|
+
|
|
45
|
+
# ===================
|
|
46
|
+
# IDE/editors
|
|
47
|
+
# ===================
|
|
48
|
+
.idea/
|
|
49
|
+
.vscode/
|
|
50
|
+
*.swp
|
|
51
|
+
*.swo
|
|
52
|
+
*~
|
|
53
|
+
|
|
54
|
+
# ===================
|
|
55
|
+
# Security (always exclude)
|
|
56
|
+
# ===================
|
|
57
|
+
.env
|
|
58
|
+
.env.*
|
|
59
|
+
*.pem
|
|
60
|
+
*.key
|
|
61
|
+
*.p12
|
|
62
|
+
*.pfx
|
|
63
|
+
credentials.*
|
|
64
|
+
secrets.*
|
|
65
|
+
|
|
66
|
+
# ===================
|
|
67
|
+
# Version control
|
|
68
|
+
# ===================
|
|
69
|
+
.git/
|
|
70
|
+
.hg/
|
|
71
|
+
.svn/
|
|
72
|
+
|
|
73
|
+
# ===================
|
|
74
|
+
# OS files
|
|
75
|
+
# ===================
|
|
76
|
+
.DS_Store
|
|
77
|
+
Thumbs.db
|
|
78
|
+
|
|
79
|
+
# ===================
|
|
80
|
+
# Project-specific
|
|
81
|
+
# Add your custom patterns below
|
|
82
|
+
# ===================
|
|
83
|
+
# large_test_fixtures/
|
|
84
|
+
# data/
|
|
85
|
+
bin/
|
|
86
|
+
|
|
87
|
+
.reposearch/
|
|
88
|
+
dist
|
|
89
|
+
.planning/
|
|
90
|
+
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
@.allhands/flows/CORE.md
|
|
2
|
+
|
|
3
|
+
When debugging .allhands , use the ah trace --help command for the tools to investigate the trace entries.
|
|
4
|
+
|
|
5
|
+
When modifying ANY `.allhands/` files, discover the `harness-maintenance` skill via `ah skills list` and follow its routing table for domain-specific guidance.
|
|
6
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# All Hands CLI
|
|
2
|
+
|
|
3
|
+
Internal CLI for the All Hands agentic harness.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd .allhands/harness
|
|
9
|
+
npm install
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The `ah` command is automatically installed to `~/.local/bin/ah` when you run `npx all-hands init`. This shim finds and executes the project-local `.allhands/harness/ah` from any subdirectory.
|
|
13
|
+
|
|
14
|
+
For local development, copy the shim to your PATH:
|
|
15
|
+
```bash
|
|
16
|
+
cp .allhands/harness/ah ~/.local/bin/ah
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Universal Ctags (for `ah docs` command)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# macOS
|
|
23
|
+
brew install universal-ctags
|
|
24
|
+
|
|
25
|
+
# Ubuntu/Debian
|
|
26
|
+
sudo apt install universal-ctags
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### AST-grep (for advanced code search)
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# macOS
|
|
33
|
+
brew install ast-grep
|
|
34
|
+
|
|
35
|
+
# cargo
|
|
36
|
+
cargo install ast-grep --locked
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Desktop Notifications (macOS)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
brew install --cask notifier
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Language Servers (for LSP tool)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install -g typescript-language-server typescript pyright
|
|
49
|
+
brew install swift
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Environment Variables
|
|
53
|
+
|
|
54
|
+
Check `.env.ai.example` for what you should populate `.env.ai` with.
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Quick Start
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
ah <command>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The `ah` command works from any directory within an all-hands project.
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## Syncing to Target Repos
|
|
67
|
+
|
|
68
|
+
The `sync` command distributes harness files from this repo to target repositories:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
ah sync /path/to/target-repo
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
By default, sync preserves configuration files that target repos customize (settings, hooks, validation suites). These "init-only" files are only included during first-time setup or when explicitly requested.
|
|
75
|
+
|
|
76
|
+
### The `--init` Flag
|
|
77
|
+
|
|
78
|
+
Use `--init` to include init-only files — configuration defaults like `docs.json` that are normally withheld to avoid overwriting target-repo customizations:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# First-time setup — include all defaults
|
|
82
|
+
ah sync /path/to/target-repo --init
|
|
83
|
+
|
|
84
|
+
# Regular update — preserves target-repo configuration
|
|
85
|
+
ah sync /path/to/target-repo
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Use `--init` when setting up a new repo or resetting configuration to harness defaults. Omit it for routine updates. See `ah sync --help` for full options.
|
|
89
|
+
|
|
90
|
+
## Project Settings
|
|
91
|
+
|
|
92
|
+
Project-specific configuration lives in `.allhands/settings.json`:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"$schema": "./harness/src/schemas/settings.schema.json",
|
|
97
|
+
}
|
|
98
|
+
```
|