Proposal (rationale)
The existing Rift Forge extraction was surveyed on 2026-08-14 against a detached working tree and
records 3,236 commits, 401 branches, 51 live worktrees, 13 skills, 69 scripts, and 102 live work
items. The local candidate/0.1.0 branch has since advanced materially and is the branch the source
repo calls its active candidate. Those claims are now stale unless re-derived from that ref.
This item refreshes the extraction against the candidate branch, preserving the original research boundary while making the evidence reproducible at a full commit SHA. It is a research correction, not a module or product change.
Decision
accepted — 2026-08-15. The local candidate/0.1.0 branch is the requested authority; its full
SHA and divergence from the stale remote-tracking ref will be recorded before any conclusion is
drawn.
Plan
Requirements
- Pin the local
candidate/0.1.0ref to a full commit SHA, record its read date, branch/ref, commit count, and the candidate-vs-remote-ref relationship. - Re-read the candidate’s own instructions, backlog/session/worktree workflow, skills, gates, release posture, and generated-artifact rules before updating the extraction.
- Recompute every headline inventory claim retained in the refreshed extraction with a named command and date; distinguish current candidate facts from historical observations.
- Record changed, retired, and newly introduced practices with file paths and commit evidence, while marking interpretation as Opinion in the first person.
- Check direct dependent research claims for the old Rift Forge counts and update or explicitly mark each one stale; do not silently leave contradicted numbers in the synthesis/index.
- State the candidate checkout’s licence evidence explicitly; do not infer a licence from metadata.
Impacts
- Primary artifact:
docs/research/repos/rift-forge.md. - Possible direct dependent updates under
docs/research/where the old Rift Forge counts or branch posture are repeated; no changes tomodules/, CLI source, or the Rift Forge checkout. - Site content and link-check surface change because research documents are published as wiki pages.
- Research claims may change pattern confidence in a later synthesis, but this item does not edit the pattern catalogue or shipped modules.
Approach
Use a temporary detached worktree at the local candidate/0.1.0 ref so the source checkout and its
existing worktrees are not switched or mutated. Run the candidate’s own inventory and self-test
commands where dependencies permit, supplementing with read-only Git/tree measurements. Compare the
new evidence against the 2026-08-14 extraction, then update only claims that the candidate checkout
supports. If the local candidate and origin/candidate/0.1.0 diverge, treat the requested local
candidate ref as the authority and record the divergence rather than blending the trees.
Acceptance criteria / tests
docs/research/repos/rift-forge.mdidentifiescandidate/0.1.0, a full SHA, read date, source checkout, and licence evidence, and every retained headline count has a reproducible command/date.- The refreshed document covers the current candidate’s setup, working practices, failure/retirement evidence, pain-point table, and extraction verdict; changed or retired practices are not hidden by copying the old narrative forward.
- A repository-wide search finds no unqualified stale Rift Forge headline count in direct research dependents; each changed claim is updated or labelled historical/stale with a reason.
- The source checkout remains unchanged and no
modules/or CLI implementation files change. rungs check, site build, and site link/type checks pass with zero broken links; the refresh’s evidence and limitations are recorded in the work item review.
Out of scope
- Editing or merging the Rift Forge candidate branch, its working tree, or its remote.
- Re-running the six public-framework extractions or changing
pattern-catalog.md/modules/; open a follow-up item if refreshed evidence changes a catalogue decision. - Reconstructing every historical branch or every product feature; only claims used by the extraction and its direct dependents are in scope.
Execution
completed — 2026-08-15. Candidate anchor established before editing:
- Local
candidate/0.1.0is4a51848cfc9a2acbcdeddcd028418572406e2950, 3,585 commits, dated 2026-08-15, with tipMerge WI-790: route coverage rows to live owners. origin/candidate/0.1.0is the older159f9f030c32df6828c16b3637ae572513d34d4e(3,262 commits). The requested local candidate is authoritative; the remote-tracking divergence is recorded rather than blended.- The existing source checkout is detached at
472d45ed; research will use a temporary worktree at the candidate ref and will not switch or mutate that checkout.
Evidence gathered on 2026-08-15 from the temporary candidate worktree:
- Inventory: 3,585 commits (
git rev-list --count), first commit21b71fa2on 2026-07-29, candidate tip4a51848con 2026-08-15; 433 branches; 105 registered worktrees. The candidate’sworktrees.mjsreport measured 80 prunable, 16 merged-but-dirty, and 13 dirty for 10+ days (oldest 12 days). - Repository surfaces: 14 skills; 85
.github/scripts/*.mjs; 181 package scripts (58check:, 46test:, 30report:, 7gen:); 16 specs; 25 ADRs; 163 live + 537 archived work items; 3 active + 2 archived sprints;CLAUDE.md555 lines;PROJECT-STATE.md1,223 lines; 74 open finding rows and 200 archived finding sections. - Candidate-vs-checkout delta: 66 commits after
472d45ed, including WI-829’s history split, F-323’s shared status predicate andlandpreflight, F-360’s self-declared-finding closure gate, WI-790’s live triage-owner enforcement, and WI-772’s product-language enforcement ledger. - Candidate self-tests passed:
verify.mjs --self-test(7 path/tier, 122 gate paths, cache contract),land.mjs --self-test(4 lock + 5 verdict + 8 worktree-guard + 10 status-preflight),session-start.mjs --self-test(6 unclaimed-id + 16 claim-boundary),check-working-rules.mjs --self-test(29 cases), andcheck-ids.mjs(700 items, 25 ADRs, 5 sprints, no duplicates/dangling citations). pnpm verify --fastcompleted 111/113 gates. The two failures (product-languageandproduct-language-self) were attributed as inherited because the temporary worktree has no installedtypescriptpackage; they are recorded as an environment limitation, not introduced by this research change.- Licence evidence: candidate root has no
LICENSE,LICENCE,COPYING, orNOTICE, and rootpackage.jsonhas nolicensefield. The research therefore says licence not established and makes no all-rights-reserved or open-source inference. - Source safety: only
docs/research/**and this work item are changed in this repository; no files under the Rift Forge source checkout ormodules//CLI implementation files were edited.
Review
approved — 2026-08-15.
Acceptance review
- Met.
docs/research/repos/rift-forge.mdpins localcandidate/0.1.0to the full4a51848cfc9a2acbcdeddcd028418572406e2950, names the source checkout and read date, records the local-vs-remote divergence, and states that licence evidence is not established. Headline counts have named read-only commands and a 2026-08-15 measurement note. - Met. The extraction now covers current setup, 14 skills, 85 scripts, 181 package scripts, current gates/skills, the candidate delta (WI-829, F-323/F-360, WI-790, WI-772), failure and retirement evidence, current worktree pain, a refreshed pain table, and an updated verdict. The former 1,513-line/401-branch/51-worktree claims remain only as explicitly historical comparisons.
- Met.
docs/research/README.md,synthesis.md,harness-landscape.md,repos/hexguard.md, andpattern-catalog.mdwere searched for the old Rift Forge headline counts. Current comparison claims now use candidate measurements; incident counts that explain the historical design are labelled as pre-refresh evidence. - Met.
git -C C:\Development\Repositories\rift-forge status --short --branchremained clean; no files under that checkout,modules/, or CLI implementation changed. - Met with one recorded limitation.
npm run rungs -- check: 20 pass / 0 fail; sitenpm run build: 89 pages built (pre-existing duplicate-content-id warnings); sitenpm run check: 0 Astro diagnostics and 1,134 internal links / 0 broken.npm test: 5 pass. Candidatepnpm verify --fast: 111/113 gates completed, with the two inherited missing-typescriptproduct-language failures recorded in Execution rather than hidden.
The review is limited to research and evidence propagation. No source-repository mutation, module change, or catalogue decision was smuggled into the item; follow-ups remain available if the refreshed candidate evidence changes a pattern decision later.