Grilling
Scaffold Output Normalization Grill Status
Scaffold Output Normalization Grill Status
Phase State
- Topic: eliminate false
hi checkdrift without weakening scaffold ownership. - Source artifacts: accepted ownership plan and implementation notes, Collective Intelligence handoff, live CLI check, and three parallel read-only research slices.
- Backlog target/provider: not selected; no backlog write or sync authorized.
- Scope boundary: requirements only. No code, generator, receipt, baseline, release, or consumer-repository mutation.
Branch Dashboard
| Branch | Completion | Locked direction | Still open |
|---|---|---|---|
| Ownership classification | 100% | All ten paths remain scaffold-managed. No repository mirrors or canonical copy producers will be introduced. | None. |
| Format-hook boundary | 100% | Raw scaffold bytes remain authoritative. The distributed hook skips every managed path and makes no mutation when the manifest is unavailable. CLI commands never run repository format commands. | None. |
| Source-guide adoption | 100% | Every scaffold-managed opensrc/ guide adopts changed desired content during separate reconciliation. No guide-specific exception exists. | None. |
| Release boundary | 100% | Release through a new stable baseline without an npm patch unless executable/schema changes become necessary. Collective Intelligence mutation and reconciliation are outside scope. | None. |
Current Round
- Round: complete
- Current frontier: empty
- Shared-understanding confirmation: confirmed
| Question id | Prerequisites | Question | State |
|---|---|---|---|
| Q1 | none | Keep these outputs scaffold-managed and fix normalization/adoption, or introduce canonical repository producers? | answered |
| Q2 | Q1 | Use formatter-normalized desired bytes, or exclude managed output from repository formatting? | superseded by Q10 |
| Q3 | Q1 | Replace stale scaffold-managed opensrc/ guides with current desired content during reconciliation? | answered |
| Q4 | Q2 | Normalize all supported scaffold-managed text output at one shared boundary, or only the nine current files? | superseded by Q10 |
| Q5 | Q2 | Use consumer repository formatter authority, or one fixed Harness formatting policy? | superseded by Q10 |
| Q6 | Q5 | Stop when formatter authority is unavailable, or fall back to raw scaffold bytes? | superseded by Q10 |
| Q7 | Q4, Q5 | Permit read-only formatter execution against staged or in-memory content? | superseded by Q10 |
| Q8 | Q4 | Let formatter capability select supported text files while other file types retain their byte contract? | superseded by Q10 |
| Q9 | Q5, Q6 | Choose formatter authority. | superseded by Q10 |
| Q10 | Q9 | Avoid CLI formatter execution and make the format hook skip all manifest-managed paths? | answered |
| Q11 | Q10 | Skip formatting when a valid scaffold manifest is unavailable? | answered |
| Q12 | Q11 | Adopt raw desired bytes only for the nine proven formatter-only conflicts? | answered |
| Q13 | Q11 | Keep manually run repository-wide format commands outside Harness control? | answered |
| Q14 | Q12, Q13 | Ship through a new stable baseline without an npm patch unless executable/schema changes are required? | answered |
| Q15 | Q14 | Use Collective Intelligence as the exact-version first consumer before broader adoption? | parked outside change scope |
| Q16 | Q15 | Confirm the bounded hook, tests, baseline, and no-consumer-mutation scope? | answered |
Parked Branches
- Collective Intelligence reconciliation is a separate user-owned follow-up after this Harness change.
- A later
hi checkis read-only and can still report the nine existing formatter-changed files and stale source guides until that reconciliation occurs. - Backlog provider sync remains unauthorized.
Backlog Implications
- Module: CLI scaffold lifecycle.
- Capability: manifest-backed automatic-format exclusion for managed paths.
- Story 1: make the distributed format hook load the managed-file receipt and skip all managed paths.
- Story 2: fail closed with no formatting mutation when the receipt is missing or invalid, while preserving formatting for unmanaged files.
- Story 3: update operator documentation and prove the hook bytes in the baseline artifact.
- Release task: publish a new stable baseline with the existing compatibility contract.
- Parked follow-up: run and interpret Collective Intelligence
hi check, then authorize any consumer reconciliation separately.
Glossary
Terms
- Scaffold-managed output: A file whose desired bytes and lifecycle remain authoritative in Harness scaffold state.
- Repository mirror: A project-generated output proven byte-for-byte against a distinct, contained, version-controlled repository source.
- Managed path: A path recorded in
.devpunks/scaffold-manifest.jsonand governed by scaffold reconciliation. - Format-hook boundary: The rule that repository auto-formatting applies only to paths that are not scaffold-managed.
Relationships
- A repository mirror requires an independent source; a managed output cannot prove itself authoritative.
- The format-hook boundary uses the managed-file receipt as its complete exclusion source.
Axioms
- A path, generated comment, Git tracking, or historical generator invocation does not establish project-generated ownership.
- Receipt metadata cannot create authority or silence drift without matching current desired evidence.
- The read-only
hi checkcommand must not invoke mutating producers. - These ten paths remain scaffold-managed; the follow-up will not create repository mirrors solely to silence drift.
- Changed desired content replaces older content for every scaffold-managed
opensrc/guide, not only the Effect guide. - Raw scaffold bytes remain authoritative for scaffold-managed output.
hi check,hi update, and desired-state compilation do not run repository format commands.- The distributed format hook does not format manifest-managed paths.
- The manifest file itself is the sole bootstrap exclusion because it cannot recursively list and hash itself; all other managed-path exclusions come from its valid receipt.
- If the managed-file receipt is unavailable or invalid, the format hook performs no mutation.
- Manually run repository-wide formatter commands are not governed by Harness and can produce legitimate managed-file drift.
- The hook fix ships in a new stable baseline; another npm patch is conditional on executable or schema changes.
Flagged Ambiguities
- "Baseline distributes formatting" means that baseline distributes the format hook. Formatter semantics belong to the repository format command.
- "Repo-generated" previously covered both Harness-rendered files later formatted by the repository and genuine outputs of an independent repository producer. The requirements phase keeps these concepts separate.
- The earlier CLI-normalization direction is under reconsideration because safe repository-command execution would add a broad dynamic runtime contract. Q10 offers a smaller manifest-backed hook boundary.