Skip to content

Add a low-cost direct Bootstrap route for new projects #61

Description

@phodal

Problem

/better-harness Step 1 routes only three kinds of request: a machine-owned <better-harness-fix-output> callback, a leading manual fix/repair directive, and review/evaluation/reporting. An explicit "initialize a Harness for this project" request has no owner, so it falls into the full review route: one Evidence Bundle, three delegated review agents, findings, scores, and a durable report.

That is the wrong cost and the wrong evidence model for 0 -> 1:

  • a project with no agent assets and no Session history has almost nothing to analyze, so the report mostly reports absence;
  • the expensive path returns findings and scores when the user asked for files;
  • skills/better-harness/references/support-bootstrap.md is not an alternative. It is a lead-only report support track that runs only after the lead freezes findings and dimension scores, and it shapes already-supported priority moves rather than writing project guidance.

So the most common first-time request — "set up AGENTS.md and wire my existing docs" — is the one thing the Skill cannot currently do cheaply.

Proposal

Add a direct Bootstrap route to Step 1 that produces a Minimum Viable Harness without the report workflow, owned by its own routed directory skills/better-harness/bootstrap/:

  1. Project entry map — create, or minimally merge into, a concise root AGENTS.md built from verified project facts.
  2. Knowledge routing — turn existing authoritative architecture, design, test, runbook, and contribution documents into conditional read routes instead of duplicating or generating them.
  3. Optional capability recommendation — only after the foundation validates, name the smallest useful owner for demand the user actually has.

Proposed acceptance criteria

  • AC-1: A leading explicit init, initialize, bootstrap, setup harness, or request-language equivalent routes to the direct Bootstrap reference and stops there. It collects no Evidence Bundle, launches no review agents, and creates no findings, scores, or report.
  • AC-2: The initialization request is task-local authority for bounded project-file changes only. Bootstrap inspects before writing, preserves existing user content and unrelated worktree changes, and stops before ambiguous overwrites or externally visible changes such as dependency installs, SCM settings, credentials, CI activation, or releases.
  • AC-3: AGENTS.md output is free-form with no mandatory section schema. Every persisted command is concrete and copy-pasteable with a declared working directory, every normative rule has a user or project source, and no placeholder, metavariable, or invented path, version, or command is written.
  • AC-4: Validation confirms persisted links and paths resolve, exercises the cheapest safely runnable commands from their declared directory, and records skipped checks honestly. The result is labelled Present or Wired; Exercised requires a representative real task.
  • AC-5: Capability recommendation runs only after the foundation is applied and validated. Framework names, Git remotes, dependency presence, and asset counts route inspection but never alone justify a recommendation. Bootstrap installs, authenticates, connects, and activates nothing, and never writes findings.json.
  • AC-6: The route stays host-neutral. No supported host is assumed, and any host-specific trigger, tool, or path is verified against the current runtime before it is named.
  • AC-7: Every new Bootstrap document is reachable from SKILL.md routing, the root Skill stays within its 220-line / 12000-byte budget, and test/better-harness-skill.test.mjs, test/doc-link-graph.test.mjs, scripts/npm-package/verify-pack.mjs, and the regenerated docs/better-harness-doc-links.mmd cover the new layout.

Notes

  • SKILL.md is currently 215 lines / 11977 bytes against a 220 / 12000 budget, so the new route must push detail into routed references instead of inlining it.
  • Consider relocating references/support-bootstrap.md to bootstrap/report-support.md in the same change so directory routing communicates the split — without merging its report-only, post-freeze authority into the new mutation route.
  • Calibrate concrete AGENTS.md fragments against case-studies/agent-customize/agents-md-good-examples.md and the AGENTS.md open format; never copy facts from an example project.
  • Per AGENTS.md, this needs a spec under docs/specs/ before implementation.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions