docs(solutions): refresh corpus against shipped reality#380
Conversation
After several major architectural arcs (CEP divorce, plugin singleton removal, content-integrity gate, provider-availability v2.13.0/v2.14.3/v2.14.4) the docs/solutions/ corpus accumulated drift. Performed a full audit and refreshed 21 docs. Actions taken: - Updated 6 docs to remove dead references to deleted CEP-sync infrastructure and add last_refreshed dates - Deleted 2 already-archived docs whose lessons are obsolete: structured-manual-override-tracking and batch-import-cep-agents - Replaced 2 docs whose subject was reversed or deleted: opencode-plugin-factory-duplicate-registration now documents the current per-load registration + marker-based bootstrap model (PR #352 reversed the singleton); sync-cep-missing-sub-files generalizes to a multi-file batch import integrity pattern enforced by scripts/content-integrity.ts - Consolidated discovery-before-validation-lifecycle (3 patterns) into provider-availability-source-defaults (now 9 patterns), since the newer doc was a refinement of the older's discriminated envelope plus two additional patterns The 11 docs not touched were verified current against shipped behavior.
fro-bot
left a comment
There was a problem hiding this comment.
Verdict: PASS
This is a well-executed corpus refresh. All 12 changed files were read. No broken cross-references, no dangling internal links to the three deleted docs, and the content-integrity gate is clean (160 md + 20 ts, 0 warnings).
Blocking issues
None.
Non-blocking concerns
1. destructive-to-nondestructive-converter-Systematic-20260209.md — pre-standard frontmatter schema
This doc uses module: Systematic instead of title:, and has no category: field. Both missing fields were already absent before this PR — the PR only added last_refreshed and a note about ad-hoc CLI usage. Worth normalizing the frontmatter to the current schema in a follow-up, but not a blocker since content-integrity doesn't scan docs/solutions/ for frontmatter shape.
2. workflow-command-prompt-dry-run-integration.md — stale_date vs last_refreshed convention
The doc uses stale_date: 2026-05-16 as the temporal anchor (no last_refreshed). The choice looks intentional — stale_date signals "when was staleness declared" rather than "when was content refreshed" — but it diverges from the pattern used in the other 8 updated docs. If the learnings-researcher agent filters by last_refreshed, this doc will appear older than it is. Consider whether to add last_refreshed alongside stale_date for consistency.
3. provider-availability-source-defaults-2026-05-12.md — Pattern 6's ReadonlySet claim
Pattern 6 states: "Object.freeze on a Set freezes only the container, not the contents — you would need to reassign Set.prototype.add or similar tricks." This is accurate for Object.freeze on a Set (freeze prevents reassigning properties but does not prevent .add/.delete calls). The doc's conclusion (factory + ReadonlySet is the right approach) is correct. The explanation is a bit compressed — Object.freeze on a plain object with Set values is a different story from Object.freeze on the Set itself — but this is documentation for a pattern that's already shipped, so worth noting for a future edit rather than blocking merge.
Missing tests
N/A — this is a documentation-only PR. The content-integrity gate acts as the structural test.
Risk assessment: LOW
- Scope is
docs/only; no TypeScript, no config, no plugin API surface touched. - The three deletions (
structured-manual-override-tracking,batch-import-cep-agents,discovery-before-validation-lifecycle) are all archived/superseded docs. No dangling internal refs confirmed by scan. - The two "replacements" (plugin registration, sync sub-files) accurately describe the current shipped behavior based on the PR descriptions for #352 and #243.
- The consolidation of
discovery-before-validation-lifecycle-2026-05-15.mdintoprovider-availability-source-defaults-2026-05-12.mdis clean — Patterns 7, 8, and 9 are present in the canonical doc with no content loss. - Content-integrity gate: clean on HEAD.
- Docs build: 110 pages, no errors (per PR description; gate output confirms).
Run Summary
| Field | Value |
|---|---|
| Event | pull_request |
| Repository | marcusrbrown/systematic |
| Run ID | 25956454632 |
| Cache | hit |
| Session | ses_1d0421865ffek2vV1Rqw0JRig0 |
Refresh
docs/solutions/against shipped reality after several architectural arcs accumulated drift.Scope
21 docs audited across 7 categories. 10 needed action:
last_refreshed: 2026-05-16What changed
Updated (6)
destructive-to-nondestructive-converter— converter still exists; added note that it's now ad-hoc CLI only; removed broken cross-referencesconverter-code-block-tool-name-capitalization— replaced deleted-workflow references with pointer toscripts/content-integrity.ts; removed Python sample in favor of the live gateworkflow-command-prompt-dry-run-integration— flipped status tostalewithstale_reasonnoting the workflow was deleted; kept body for historical contextzsh-for-loop-word-splitting— replaced "Initiative chore: migrate to OpenCode-native skill loading #3" planning taxonomy with concrete reference to the live content-integrity gatereconciliation-sync-reference-integrity— reframed from CEP-sync to content-integrity-gate component; updated tagsocx-registry-review-fixes— added V1→V2 schema migration note; removed broken cross-references to deleted docsDeleted (2)
structured-manual-override-tracking-Systematic-20260210.md— fully obsolete after CEP divorce; was alreadystatus: archivedbatch-import-cep-agents-to-systematic-20260210.md— workflow no longer exists; was alreadystatus: archivedReplaced (2)
opencode-plugin-factory-duplicate-registration-2026-05-04.md— PR refactor(plugin): independent per-load registration with marker-based bootstrap idempotency #352 removed theplugInOncesingleton entirely. Doc now describes the current per-load registration model with marker-based bootstrap idempotency via<SYSTEMATIC_WORKFLOWS>strip-and-replacesync-cep-missing-sub-files-SyncCEP-20260219.md— generalized from the deleted sync workflow into a multi-file batch-import integrity pattern; the enforcing mechanism is nowcheckSubfileReferencesinscripts/content-integrity.tsConsolidated (1)
discovery-before-validation-lifecycle-2026-05-15.mdmerged intoprovider-availability-source-defaults-2026-05-12.md. The newer doc was a refinement of the older's discriminated envelope (adding empty-set collapse) plus two new patterns (lifecycle ordering, parallel-bug check). Canonical doc now has 9 patterns covering the full provider-availability arc across PRs feat(overlay): replace auth.json with client-API availability + provider-grouped source defaults #358, fix(overlay): collapse empty discovery to unknown + run discovery before validation #372, fix(overlay): collapse empty cache to unknown availability status #378.Verification
Net change
docs:prefix, no release impact.