Skip to content

v3.26.0 — Build Observability

Choose a tag to compare

@zigrivers zigrivers released this 07 May 23:10
· 299 commits to main since this release
06fca3e

Build Observability

This release ships the complete Build Observability system across Plans 1–8 — a new subsystem that records what happens during a multi-agent implementation run, surfaces stalls and audit findings at every command boundary, and (new in this release) dispatches AI agents to fix blocking findings automatically.

What's new

Ledger and eventsscaffold observe event <type> writes append-only activity events (task_claimed, task_completed, decision_made, blocker_raised, pr_opened, pr_merged) to .scaffold/activity.jsonl with lockfile-safe concurrent writes.

Progress snapshotscaffold observe progress fuses the ledger with six adapter event streams (git, GitHub, MMR, pipeline state, tests, pipeline docs) into a live snapshot. --replay produces a chronological timeline. --no-stall-check suppresses the Needs Attention surface. Stall signals: task_stale, pr_stale, pr_review_stale, blocker_unaddressed, audit_findings_unresolved, lens_skipped_repeatedly.

Eight-lens auditscaffold observe audit runs:

  • A-tdd — test-first evidence
  • B-ac-coverage — acceptance-criteria coverage
  • C-standards — coding-standards / ESLint compliance
  • D-stack — stack conformance vs. tech-stack doc
  • E-design — design-token usage in CSS/JSX
  • F-scope — implementation task vs. user story coverage
  • G-decisions — decision log completeness (keyword commit scan)
  • H-cross-doc — cross-document consistency + LLM-graded checks at --profile=full

Findings get stable IDs. scaffold observe ack <prefix> acknowledges or reopens findings. Exits 1 when verdict is blocked.

--fix flowscaffold observe audit --fix dispatches a fix agent for each blocking finding, verifies the fix, and writes a post-fix report. SIGINT-safe: Ctrl-C reverts staged changes and restores the stash.

Harvest and recoveryscaffold observe harvest --worktree=<path> flushes a worktree's ledger to .scaffold/activity-archive/. --recover rotates stale archive entries (worktrees no longer in git worktree list) into monthly YYYY-MM.jsonl files.

Teardown scriptscripts/teardown-agent-worktree.sh <path> harvests, removes the worktree, and deletes the workspace branch in one command.

Dashboard panelsscripts/generate-dashboard.sh now injects Build Progress and Audit panels via named anchors. Both panels show stall signals, timeline, and findings by severity.

Phase-boundary triggersscaffold complete <step> auto-runs Lens H after completing any phase-boundary step (user-stories, tech-stack, coding-standards, design-system, implementation-plan, implementation-playbook). Non-gating.

MMR doc-conformance channelmmr review --channels=doc-conformance runs the audit as a built-in MMR channel with stable composite location IDs. Disabled by default.

Upgrade

npm update -g @zigrivers/scaffold
# or
brew upgrade scaffold

Configuration

# .scaffold/observability.yaml
fix:
  dispatcher_command: "claude -p"
  timeout_s: 300
  per_finding_max_attempts: 3
phase_audit:
  enabled: true
  timeout_s: 60
stall:
  task_stale_hours: 4
  pr_stale_hours: 24

See the CHANGELOG for the full entry.