Skip to content

feat(survey): add forge-survey, a periodic design review with a stable record - #155

Merged
mgratzer merged 4 commits into
mainfrom
feat/survey
Nov 10, 2026
Merged

mgratzer merged 4 commits into
mainfrom
feat/survey

Conversation

@mgratzer

Copy link
Copy Markdown
Owner

Whole-codebase reviews keep finding the same classes of problem, and their reports are lost with the session that wrote them. forge-survey records each finding in docs/surveys/ with its class, evidence, remedy and the rule or check that let it through, and turns a class that recurs into a guardrail.

Notes

  • A tenth skill, 911 words. It is not part of the pipeline, so the lens is unchanged.
  • The class table repeats terms that feat(skills): ask where a decision already lives, in the plan, the review and the risk verdict #154 defines in deep-modules.md (test seam, leftover of a replacement). The two PRs merge in either order; README is the only shared file.
  • No unattended mode: triage asks the user, and a headless run stops with every finding open.
  • Judgment calls (run unattended from another project's session): the name forge-survey, the eight classes, the record's home docs/surveys/.

Exercised

Snapshot forge-new at 3fcbd19, run headless in a fresh clone of the sandbox. There is no forge-old run: the skill is new.

  • /forge-new:forge-survey: four fresh-context readers (three areas, one cross-module). It recorded six findings in docs/surveys/2026-11-10.md, each with class, file:line evidence and a Let through by cell, for example Quality gate in AGENTS.md:9 ("syntax check"): missing. It listed three possible bugs separately, dropped three weak candidates, proposed no guardrail (first survey), and opened sandbox PR feat(ship): local-first shipping and a separate publish step #56 (closed).
  • Failure case, no one to ask: it printed the triage question, filed no Issue, and left every Status open.
  • wrong: the run left the checkout on the docs/survey-2026-11-10 branch. Fixed in 73185cb (record from a temporary worktree); that fix was not re-run.
  • Not exercised: a second survey that marks recurring findings and proposes a guardrail; a scoped run.
  • Checks: scripts/check-skills.sh prints nothing. claude plugin validate and claude plugin test not run.

Try it: in any repository, /forge-survey, then open docs/surveys/<today>.md.

Plan

Plan as first made (no approver: the owner asked for the skill, item B6 of the design guardrails proposal, and did not see this plan)
  • Design: Interface: /forge-survey [paths], output docs/surveys/<date>.md. Hides: how areas are split and verified. Already lives: nowhere in forge; forge-reflect reviews a diff, and its review flow is not reused because a survey has no diff.
  • Phase 1: the skill, with its class table and record format.
  • Phase 2: README table and count, docs/architecture.md, a Related Skills line in forge-setup-project, scenarios in docs/testing.md.
  • Not changing: every other skill's process, the lens, the shared modules.

Deviations (as of 73185cb): none

…e record

Findings carry a class, evidence, remedy and the rule or check that let them
through, and live in docs/surveys/. A class that recurs across two surveys
yields a guardrail instead of one more Issue per instance.
@mgratzer
mgratzer merged commit 24f900e into main Nov 10, 2026
2 checks passed
@mgratzer
mgratzer deleted the feat/survey branch November 10, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant