Repository navigation
feat(planning): planning views on the view registries with the shipped Artifact default - #12798
Draft
kyle-sexton wants to merge 4 commits into
Draft
kyle-sexton wants to merge 4 commits into
kyle-sexton wants to merge 4 commits into
Conversation
…d Artifact default The plan, brainstorm and design views render through one view-kind registry in lib/view-builder.mjs, render(laneId, kind, record), and the planning lane registers all three. A new design kind reads PLAN.md's ## Design section and builds from a checked-in template. scripts/build-view.mjs --option resolves the medium, runs the publish gate over a publishing medium, builds the page and hands it to the medium's registry entry, so the skills name no medium value and print the report line. A test delivers a plan view through a medium that exists only in a fixture registry. The planning lane ships artifact as its plugin default, not as the userConfig default: a userConfig value counts as the reader's explicit choice and would skip the gate's visibility and credential checks. The contract records the planning views as the third Artifact exception. The resolver CLI adds page and publishes to its JSON so session-written views branch without naming a medium. view-registry.mjs is synced beside every view-builder copy, and publish-gate.mjs into planning. Closes #12650 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcupojdnckzkRQMdQRVNbt
Regenerate the planning README's options table from the new medium description, word the design data shape without a spaced code span, and mark the embedded JavaScript regex in the view-builder test as portable. Refs #12650 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcupojdnckzkRQMdQRVNbt
…iew-registry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcupojdnckzkRQMdQRVNbt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcupojdnckzkRQMdQRVNbt
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #12650
Summary
Slice S2 of #12646. The plan, brainstorm and design views now render through one view-kind registry and the medium resolver. Planning ships a private Artifact as its default medium, behind the publish gate. The rendered-views contract records the planning views as the third named Artifact exception.
Fix
lib/view-builder.mjsholds the view-kind registry,VIEW_KINDS({ id, parse, template, tier }), andrender(laneId, kind, record).renderbuilds only a kind that the lane registers inlib/view-registry.mjs. Theplanandbrainstormshapes moved out of the planning script and into entries. The newdesignkind reads the## Designsection ofPLAN.md; headings inside code fences count as text.lib/view-registry.mjs: the planning lane registersplan,brainstormanddesign, and its plugin default isartifact.NO_PAGEnames the last step of the fallback chain.plugins/planning/scripts/build-view.mjs --option ...runs four steps:It then prints one JSON line with the delivery, followed by the report line. The skills and
reference/rendered-view.mdact onpublishorpageand name no medium value. The legacy build and--connectmodes are unchanged.The
artifactdefault is shipped as the lane's plugin default. ThemediumuserConfig default staysauto. A userConfig value counts as the reader's explicit choice (gateExplicit), so anartifactdefault there would skip the gate's visibility and credential checks. Leaving out--visibilitykeeps the default local.The resolver CLI's JSON gains
pageandpublishesfields. The session-written views in "Other optional views" can branch on them without naming a medium.Synced copies:
view-registry.mjsnow sits beside everyview-builder.mjscopy: education, architecture, debugging, discovery and machine-health are new.publish-gate.mjsis now copied into planning.Planning evals are updated, and design case 20 is added. The contract gains the third exception paragraph and the design emitter entry. Fragments: planning
minor, 10 carrierspatch.Verification
node plugins/planning/scripts/build-view.mjs design --record <PLAN.md>exits 0 and writes onedesign.html. This was run on the epic's real plan record and on a test fixture.plugins/planning/scripts/deliver-view.test.sh(19 tests) includes a fake medium registered only in a fixture registry. It delivers a plan view with no skill edit. The gate keeps the default local for a PRIVATE repository, an unknown visibility and a credential-shaped record; a userConfigartifactpublishes; the terminal medium builds no page.scripts/plan-test-lanes.sh --base origin/mainselects pass. That coverslib/view-builder.test.sh(render checks, plus an import check of every view-builder copy),lib/view-settings.test.sh,lib/publish-gate.test.sh, each plugin'sbuild-view.test.sh,explain-change,checkup-viewandmorning-brief-view.plan-test-lanes.shexits 0 with 0 unmapped.scripts/sync-shared-copies.sh --checkand--check-bump origin/mainexit 0.validate-cases.py plugins/planning/evalsexits 0 with no FAIL.check-evals-quality.shpasses on the three skill eval sets.Related
plugins/planning/reference/rendered-view.mda synced copy, so it can fold this edit into the canonical file.🤖 Generated with Claude Code
https://claude.ai/code/session_01VcupojdnckzkRQMdQRVNbt
session: html-plan