Commit Graph
4 Commits
Author SHA1 Message Date
Nick 18ef9a53e3 refactor(scaffolding): §15U — resume discovery migrated to the interface
ConstructionInterface.discover_active_contract: ONE canonical home for
fresh-builder resume discovery (per-project scaffolds + main store;
most-recent contract; pure readback). T14/T15 driver helpers are now
shims. capabilities() advertises the op. Held-out: empty store invents
nothing; seeded store discovers the right contract.
2026-09-15 04:50:38 +01:00
Nick 2a106e39a3 fix(test): 29e accepts CONTRACT provenance (obligations projection now includes contract-level obligations)
CI Pipeline / best-practices (push) Successful in 11s
CI Pipeline / documentation (push) Successful in 8s
CI Pipeline / lint (push) Successful in 54s
CI Pipeline / gitea-offline (push) Successful in 21s
CI Pipeline / type-check (push) Successful in 28s
Auto-version and Release / release (push) Successful in 1m12s
CI Pipeline / canary (push) Successful in 30s
CI Pipeline / unit-tests (push) Successful in 2m2s
CI Pipeline / required-checks (push) Successful in 1s
deploy / deploy (push) Successful in 4m16s
2026-09-14 12:50:33 +01:00
Nick 307b0bf814 feat(scaffolding): capabilities operation — builder schema negotiation (SCAFFOLD-TRANCHE-008 live task)
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / lint (push) Failing after 27s
CI Pipeline / canary (push) Successful in 36s
Auto-version and Release / release (push) Successful in 1m3s
CI Pipeline / best-practices (push) Successful in 8s
CI Pipeline / unit-tests (push) Successful in 1m10s
CI Pipeline / type-check (push) Successful in 31s
CI Pipeline / gitea-offline (push) Successful in 14s
CI Pipeline / required-checks (push) Failing after 1s
deploy / deploy (push) Failing after 2m59s
Closes maintenance:interface-capabilities-op — T7 brief §28 required
builders to detect the supported interface schema before use; the envelope
carried the schema field passively but no operation exposed it.

- ConstructionInterface.capabilities(): schema_version, supported
  operations, error-state vocabulary, mode + project identity. Read-only,
  no contract required.
- CLI dispatch: capabilities command (transport parity — builders detect
  schema without the Python API).
- New-behavior proof: 2 tests (op + CLI roundtrip). Old-behavior
  preservation: existing 26 interface tests untouched and green; full
  suite 1591 green.

Governed through the Construction Interface itself (SCAFFOLD-TRANCHE-008):
Need submitted via submit_need, scope/obligations/patterns consumed before
implementation, observations reported via report_observation, phase map
completed through the interface (verifying → superseding → close).
2026-09-13 21:33:42 +01:00
Nick 90bd2b3285 feat(scaffolding): Construction Interface — builder adapter, TUI backlog, pattern-precision repair (SCAFFOLD-TRANCHE-007)
CI Pipeline / best-practices (push) Successful in 9s
CI Pipeline / documentation (push) Successful in 5s
CI Pipeline / canary (push) Successful in 38s
Auto-version and Release / release (push) Successful in 44s
CI Pipeline / lint (push) Successful in 45s
CI Pipeline / gitea-offline (push) Successful in 16s
CI Pipeline / type-check (push) Failing after 30s
CI Pipeline / unit-tests (push) Successful in 1m14s
CI Pipeline / required-checks (push) Failing after 1s
deploy / deploy (push) Failing after 2m55s
§0 PATTERN FALSE-POSITIVE REPAIR (investigated, not assumed):
- Root cause layer 1: raw-substring signal matching — 'ui' matched
  'patterns_bu_i_l_t_in.py'. Boundary-aware matchers: short (<4 char)
  signals match path TOKENS / entity-namespace PREFIXES only; longer
  signals may contain.
- Root cause layer 2: ui-component-identity-stable was keyed on
  path_contains ['tui','ui','widget'] — re-keyed to entities_match
  ui:/region:/layout: with namespace-prefix semantics (structural kinds
  carry meaning in their prefix).
- Verified all four directions: T6 false positive gone; tui_backlog path
  no longer activates identity obligation; genuine UI work still derives;
  genuine deploy hits survive. Recorded as
  process-defect:raw-substring-signal-match + TUI registry entry for
  tui_backlog.py (ledger, honestly marked not-a-surface).

- construction_interface.py: ONE builder-facing boundary (Rune-internal +
  external-project modes). submit_need → inspect_decision → get_scope →
  get_obligations → report_observation → verify → transition → close →
  resume + amend_scope. Structured JSON envelope (schema v1: success/ids/
  state/errors/warnings); explicit error states (UNKNOWN_CONTRACT,
  SCOPE_VIOLATION, APPROVAL_REQUIRED, VERIFICATION_FAILED,
  STORE_WRITE_FAILED...); builder identity recorded for audit, semantics
  identical for any builder (§17); NO structural-authority writes exposed;
  scope amendment is user-gated; closure cannot be self-certified; CLI
  transport with --builder/--project-store flags.
- tui_backlog.py: durable TUI Upgrade Backlog (§22-25) — projection
  classification (NONE/INSPECTION/CONTROL/BOTH/UNKNOWN), auto-capture seam
  record_tui_projection_decision for contract closures, backlog NEVER
  structural authority (frontier propagation empty, test-proven).

REAL PROOF §33: builder session via interface-only subprocess (no internal
imports): submit→decision→scope→obligations→transition→observe→verify→
close→FRESH-PROCESS RESUME recovering need/decision/scope/obligations/
next-action from contract id alone. Scope green, quality green.

Tests: 33 new (interface §29/§30, pattern precision §31, backlog §32);
suite 1589 green; henxels rc=0; pyright clean.
2026-09-13 17:23:13 +01:00