Skip to content
Back to skills

Plans

ASecurity

- Status: done - Owner: maintainers - Start date: 2026-04-29 - Last updated: 2026-04-30 - Related issue or PR: PR #23 - Supersedes: none - broad_smoke_required: true - broad_smoke_reason: Planned initiative touches governance, public README ownership, canonical skills, generated Codex skill mirrors, generated public adapter packages, lifecycle-managed artifacts, and proposal workflow guidance.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
developmentpythongobashcode-reviewgitdocumentation

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add xiongxianfei/rigorloop --skill plans --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Plans?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Plans
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/xiongxianfei-plans/badge)](https://www.skillsdirectory.com/skills/xiongxianfei-plans)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Vision Skill Execution Plan

- Status: done
- Owner: maintainers
- Start date: 2026-04-29
- Last updated: 2026-04-30
- Related issue or PR: PR #23
- Supersedes: none
- broad_smoke_required: true
- broad_smoke_reason: Planned initiative touches governance, public README ownership, canonical skills, generated Codex skill mirrors, generated public adapter packages, lifecycle-managed artifacts, and proposal workflow guidance.

## Purpose / big picture

Implement the approved `vision` skill contract without creating the initial `vision.md` as a side effect. The implementation adds a canonical skill for creating, revising, and mirroring a project vision; aligns proposal and proposal-review guidance around `Vision fit`; records the `vision.md` source-of-truth boundary in governance and workflow docs; and refreshes generated skill and adapter outputs only through existing generators.

The first implementation creates the method and distribution surface. Initial project vision authoring remains a later explicit `vision create` invocation after this skill is accepted and shipped.

## Source artifacts

- Proposal: `docs/proposals/2026-04-29-vision-skill.md`
- Spec: `specs/vision-skill.md`
- Spec review: approved on 2026-04-29 after source-of-truth, marker insertion, normative ID, and exception-recording updates.
- Architecture: not required. The approved spec changes skill, governance, README ownership, and generated distribution surfaces without introducing a service, dependency, persistent data store, runtime boundary, or architecture package change.
- Test spec: `specs/vision-skill.test.md` is active.
- Project map: none exists. Orientation comes from `CONSTITUTION.md`, `AGENTS.md`, `README.md`, `docs/workflows.md`, current skills, validators, and generated adapter layout.

## Context and orientation

- Canonical authored skills live under `skills/`. Generated Codex runtime mirrors under `.codex/skills/` and public adapter packages under `dist/adapters/` must not be hand-edited.
- `skills/vision/SKILL.md` will be a new canonical skill. `skills/proposal/SKILL.md` and `skills/proposal-review/SKILL.md` need targeted guidance for `Vision fit`.
- `CONSTITUTION.md` outranks `vision.md`; the spec requires governance docs to record `vision.md` as the canonical project-vision and proposal-fit reference below the constitution and above generated README front matter.
- `README.md` is public project overview. Its future vision front-matter block is generated from `vision.md`, but this implementation does not create the initial `vision.md` or generated front-matter.
- `docs/workflows.md` documents proposal flow and source ownership; it needs enough guidance to keep `vision` upstream of the per-change lifecycle.
- `scripts/build-skills.py` owns `.codex/skills/` generation. `scripts/build-adapters.py --version 0.1.1` owns public adapter package generation.
- `README.md` is an approved touched surface for this initiative. Selector routing must classify it as `readme`, select lightweight README validation, and select vision marker validation when a standalone marker block is present or the vision skill is in scope.

## Non-goals

- Create the initial root `vision.md`.
- Insert generated README vision front-matter in this implementation.
- Add `vision` to the normal per-change lifecycle chain.
- Add a README mirror helper script.
- Add validator enforcement for vision prose quality.
- Rewrite existing proposals to add `Vision fit`.
- Change adapter portability rules beyond adding the new canonical skill source and generated copies.
- Hand-edit `.codex/skills/` or `dist/adapters/`.

## Requirements covered

| Requirement IDs | Planned implementation surface |
| --- | --- |
| `R1`-`R4`, `R21`-`R28`, `R56`-`R74` | `skills/vision/SKILL.md` mode contract, vision content rules, README marker contract, reporting, privacy, research, Markdown, and bounded-read guidance |
| `R5`-`R20` | `skills/vision/SKILL.md` create/revise/mirror behavior, existing-vision protection, separate initial vision creation, and change-local revision reminders |
| `R29`-`R39`, `R75`-`R78` | `skills/proposal/SKILL.md` and `skills/proposal-review/SKILL.md` `Vision fit` and conflict-exception guidance |
| `R40`-`R42` | `skills/vision/SKILL.md`, `docs/workflows.md`, and governance wording that keeps `vision` upstream and not a lifecycle stage |
| `R43`-`R45` | `.codex/skills/`, `dist/adapters/`, `dist/adapters/manifest.yaml`, and generated entrypoint refresh through existing generators |
| `R46`-`R55` | `CONSTITUTION.md`, `AGENTS.md`, `docs/workflows.md`, and README ownership guidance |
| `R79`-`R80` | `scripts/validation_selection.py`, `scripts/validate-readme.py`, and `scripts/test-select-validation.py` README routing and marker validation |
| `AC1`-`AC12` | Milestones M1-M5 together |

## Validation command types

This plan uses two validation command types:

- Pass-gate commands are expected to succeed as written and are required for milestone completion.
- Selector inspections prove selected checks for supported paths. A blocked selector result is acceptable only for unsupported paths when the plan records the manual route that replaces selected CI for that path.

## Milestones

### M1. Add canonical vision skill

- Goal: Add the canonical `vision` skill with create, revise, and mirror mode guidance while explicitly preventing initial `vision.md` creation during this implementation.
- Requirements: `R1`-`R28`, `R40`-`R42`, `R56`-`R74`, `AC1`, `AC2`, `AC8`, `AC11`.
- Files/components likely touched:
  - `skills/vision/SKILL.md`
  - `scripts/test-skill-validator.py`
  - this plan
- Dependencies:
  - approved `specs/vision-skill.md`
  - no helper script and no root `vision.md`
- Tests to add/update:
  - add focused `scripts/test-skill-validator.py` regression coverage for the `vision` skill mode contract, README marker contract, privacy/research boundaries, and bounded-read guidance
- Implementation steps:
  - Add `skills/vision/SKILL.md` with required metadata and concise operational instructions.
  - Include create, revise, and mirror behavior; existing vision overwrite protection; README marker rules; source-of-truth hierarchy; sensitive-data and external-research boundaries; plain Markdown and 500-word limits; and mode reporting.
  - Confirm no root `vision.md` is created.
  - Update this plan progress and validation notes.
- Validation commands:
  - `python scripts/validate-skills.py skills/vision/SKILL.md`
  - `python scripts/validate-skills.py`
  - `python scripts/test-skill-validator.py`
  - `test ! -e vision.md`
  - `rg -n "create|revise|mirror|vision:start|vision:end|500 words|CONSTITUTION.md|README front-matter" skills/vision/SKILL.md`
  - `git diff --check -- skills/vision/SKILL.md docs/plans/2026-04-29-vision-skill.md`
- Expected observable result: the authored `vision` skill is valid, documents the approved behavior, and does not create `vision.md`.
- Commit message: `M1: add canonical vision skill`
- Milestone closeout:
  - [x] targeted validation passed
  - [x] progress updated
  - [x] decision log updated if needed
  - [x] validation notes updated
  - [x] milestone committed
- Risks:
  - The skill may become too long or behave like a full project-management stage.
- Rollback/recovery:
  - Remove `skills/vision/SKILL.md`; no generated output should be refreshed until M3.

### M2. Align governance and proposal guidance

- Goal: Record the `vision.md` source-of-truth boundary and make proposal/proposal-review behavior check `Vision fit`.
- Requirements: `R29`-`R42`, `R46`-`R55`, `R75`-`R78`, `AC3`-`AC5`, `AC10`, `AC12`.
- Files/components likely touched:
  - `CONSTITUTION.md`
  - `AGENTS.md`
  - `docs/workflows.md`
  - `README.md`
  - `skills/proposal/SKILL.md`
  - `skills/proposal-review/SKILL.md`
  - this plan
- Dependencies:
  - M1 complete
  - no `vision.md` creation in this milestone
- Tests to add/update:
  - update skill validator fixtures only if canonical skill guidance changes affect fixture expectations
  - no README mirror helper tests in this milestone
- Implementation steps:
  - Update `CONSTITUTION.md` source-of-truth order and governance guidance for `vision.md`.
  - Update `AGENTS.md` and `docs/workflows.md` with concise operational routing: `vision` is upstream, not a normal lifecycle stage; proposals include `Vision fit` after adoption.
  - Update README ownership guidance so future marker-bounded front-matter is generated from `vision.md` and not independently authoritative.
  - Update `skills/proposal/SKILL.md` to require `Vision fit` for new or substantively revised proposals after adoption.
  - Update `skills/proposal-review/SKILL.md` to request missing `Vision fit` and classify conflicts as revise proposal, revise vision, or explicit exception.
  - Update this plan progress and validation notes.
- Validation commands:
  - `python scripts/validate-skills.py`
  - `python scripts/test-skill-validator.py`
  - `python scripts/test-select-validation.py`
  - `python scripts/select-validation.py --mode explicit --path CONSTITUTION.md --path AGENTS.md --path docs/workflows.md --path skills/proposal/SKILL.md --path skills/proposal-review/SKILL.md`
  - `python scripts/select-validation.py --mode explicit --path README.md` selects `readme.validate` without `unclassified-path`.
  - `python scripts/validate-readme.py README.md`
  - `git diff --check -- CONSTITUTION.md AGENTS.md docs/workflows.md README.md skills/proposal/SKILL.md skills/proposal-review/SKILL.md docs/plans/2026-04-29-vision-skill.md`
- Expected observable result: contributors and agents have a single source-of-truth story for vision, README front-matter, proposal fit, and exception handling.
- Commit message: `M2: align vision governance and proposal guidance`
- Milestone closeout:
  - [x] targeted validation passed
  - [x] progress updated
  - [x] decision log updated if needed
  - [x] validation notes updated
  - [x] milestone committed
- Risks:
  - Governance wording could accidentally reorder behavior specs below vision for behavior contracts.
  - README routing could regress and block PR-mode CI as `unclassified-path`.
- Rollback/recovery:
  - Revert the authored guidance changes. Generated outputs are still not refreshed until M3.

### M3. Refresh generated skill and adapter outputs

- Goal: Propagate canonical skill changes to `.codex/skills/` and public adapter packages through existing generators only.
- Requirements: `R43`-`R45`, generated-output portions of `AC6` and `AC7`.
- Files/components likely touched:
  - `.codex/skills/vision/SKILL.md`
  - `.codex/skills/proposal/SKILL.md`
  - `.codex/skills/proposal-review/SKILL.md`
  - `dist/adapters/manifest.yaml`
  - `dist/adapters/codex/AGENTS.md`
  - `dist/adapters/claude/CLAUDE.md`
  - `dist/adapters/opencode/AGENTS.md`
  - `dist/adapters/codex/.agents/skills/vision/SKILL.md`
  - `dist/adapters/codex/.agents/skills/proposal/SKILL.md`
  - `dist/adapters/codex/.agents/skills/proposal-review/SKILL.md`
  - `dist/adapters/claude/.claude/skills/vision/SKILL.md`
  - `dist/adapters/claude/.claude/skills/proposal/SKILL.md`
  - `dist/adapters/claude/.claude/skills/proposal-review/SKILL.md`
  - `dist/adapters/opencode/.opencode/skills/vision/SKILL.md`
  - `dist/adapters/opencode/.opencode/skills/proposal/SKILL.md`
  - `dist/adapters/opencode/.opencode/skills/proposal-review/SKILL.md`
  - this plan
- Dependencies:
  - M1 and M2 complete
- Tests to add/update:
  - no new generator behavior expected; update regression tests only if adding `vision` changes expected inventories
- Implementation steps:
  - Run `python scripts/build-skills.py`.
  - Run `python scripts/build-adapters.py --version 0.1.1`.
  - Inspect generated manifest and adapter output for `vision` inclusion and no opencode command alias unless existing command-alias policy includes it.
  - Update this plan progress and validation notes.
- Validation commands:
  - `python scripts/build-skills.py --check`
  - `python scripts/test-adapter-distribution.py`
  - `python scripts/build-adapters.py --version 0.1.1 --check`
  - `python scripts/validate-adapters.py --version 0.1.1`
  - `python scripts/select-validation.py --mode explicit --path .codex/skills/vision/SKILL.md --path .codex/skills/proposal/SKILL.md --path .codex/skills/proposal-review/SKILL.md --path dist/adapters/manifest.yaml --path dist/adapters/codex/AGENTS.md --path dist/adapters/claude/CLAUDE.md --path dist/adapters/opencode/AGENTS.md --path dist/adapters/codex/.agents/skills/vision/SKILL.md --path dist/adapters/codex/.agents/skills/proposal/SKILL.md --path dist/adapters/codex/.agents/skills/proposal-review/SKILL.md --path dist/adapters/claude/.claude/skills/vision/SKILL.md --path dist/adapters/claude/.claude/skills/proposal/SKILL.md --path dist/adapters/claude/.claude/skills/proposal-review/SKILL.md --path dist/adapters/opencode/.opencode/skills/vision/SKILL.md --path dist/adapters/opencode/.opencode/skills/proposal/SKILL.md --path dist/adapters/opencode/.opencode/skills/proposal-review/SKILL.md`
  - `git diff --check -- .codex/skills dist/adapters docs/plans/2026-04-29-vision-skill.md`
- Expected observable result: generated Codex and public adapter outputs include the new `vision` skill and updated proposal/review skill copies with no drift.
- Commit message: `M3: refresh generated vision skill outputs`
- Milestone closeout:
  - [x] targeted validation passed
  - [x] progress updated
  - [x] decision log updated if needed
  - [x] validation notes updated
  - [x] milestone committed
- Risks:
  - Generated output may include broad adapter entrypoint changes from updated skill inventory.
- Rollback/recovery:
  - Revert generated outputs and canonical skill changes together, then rerun `python scripts/build-skills.py --check` and `python scripts/build-adapters.py --version 0.1.1 --check`.

### M4. Change-local closeout and full validation handoff

- Goal: Prepare the implemented change for code-review by adding required change-local metadata, proving lifecycle consistency, and running final validation including plan-required broad smoke.
- Requirements: all requirements and `AC1`-`AC12`.
- Files/components likely touched:
  - `docs/changes/2026-04-29-vision-skill/change.yaml`
  - `docs/plans/2026-04-29-vision-skill.md`
  - `docs/plan.md`
  - any files changed in M1-M3
- Dependencies:
  - M1-M3 complete
  - active matching test spec exists before implementation proceeds
- Tests to add/update:
  - as defined by the matching test spec
- Implementation steps:
  - Create `docs/changes/2026-04-29-vision-skill/change.yaml` with proposal, spec, plan, test spec, canonical skill, governance, README, and generated-output artifacts.
  - Update this plan's progress, validation notes, and decision log as needed.
  - Keep `docs/plan.md` synchronized with this plan body.
  - Do not write final `explain-change.md` in this milestone; the `explain-change` stage owns that after verify.
- Validation commands:
  - `python scripts/validate-skills.py`
  - `python scripts/test-skill-validator.py`
  - `python scripts/build-skills.py --check`
  - `python scripts/test-adapter-distribution.py`
  - `python scripts/build-adapters.py --version 0.1.1 --check`
  - `python scripts/validate-adapters.py --version 0.1.1`
  - `python scripts/test-select-validation.py`
  - `python scripts/test-change-metadata-validator.py`
  - `python scripts/validate-change-metadata.py docs/changes/2026-04-29-vision-skill/change.yaml`
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md --path docs/changes/2026-04-29-vision-skill/change.yaml`
  - `bash scripts/ci.sh --mode broad-smoke`
  - `python scripts/select-validation.py --mode explicit --path README.md` selects `readme.validate` without `unclassified-path`.
  - `python scripts/validate-readme.py README.md`
  - `python scripts/validate-readme.py README.md --vision-markers`
  - `git diff --check -- .`
- Expected observable result: all authored, generated, lifecycle, and change-local surfaces are coherent and ready for code-review; PR/explain readiness still depends on downstream `code-review`, `verify`, and `explain-change`.
- Commit message: `M4: close vision skill implementation`
- Milestone closeout:
  - [x] targeted validation passed
  - [x] broad smoke passed
  - [x] progress updated
  - [x] decision log updated if needed
  - [x] validation notes updated
  - [x] milestone committed
- Risks:
  - Final validation can expose stale generated output or lifecycle mismatches across proposal, spec, plan, and change metadata.
- Rollback/recovery:
  - Revert the M4 change-local metadata and plan-index updates if earlier milestones need to be reopened.

### M5. Resolve README selector PR blocker

- Goal: Fix the verify-discovered PR-mode selector blocker by routing `README.md` through deterministic README validation instead of treating it as `unclassified-path`.
- Requirements: `R79`-`R80`, `AC9`.
- Files/components likely touched:
  - `scripts/validation_selection.py`
  - `scripts/validate-readme.py`
  - `scripts/test-select-validation.py`
  - `specs/vision-skill.md`
  - `specs/vision-skill.test.md`
  - `docs/plans/2026-04-29-vision-skill.md`
  - `docs/changes/2026-04-29-vision-skill/change.yaml`
  - `docs/plan.md`
- Dependencies:
  - M1-M4 complete
  - verify identified `README.md` as a PR-mode `unclassified-path` blocker
- Tests to add/update:
  - add PR-mode selector regression coverage proving `README.md` is classified as `readme`
  - add marker-validation selection coverage for standalone marker blocks and vision-skill scope
- Implementation steps:
  - Add `readme.validate` and `readme.vision_markers` selector catalog entries.
  - Classify root `README.md` as `readme`.
  - Add a lightweight README validator that checks Markdown readability and validates standalone vision marker boundaries when requested.
  - Select marker validation when a standalone vision marker block is present or the vision skill is in scope.
  - Update lifecycle artifacts that previously described README as an unclassified manual route.
- Validation commands:
  - `python scripts/test-select-validation.py`
  - `python scripts/select-validation.py --mode explicit --path README.md`
  - `python scripts/validate-readme.py README.md`
  - `python scripts/validate-readme.py README.md --vision-markers`
  - `python scripts/select-validation.py --mode pr --base origin/main --head HEAD`
  - `bash scripts/ci.sh --mode pr --base origin/main --head HEAD`
  - `python scripts/validate-change-metadata.py docs/changes/2026-04-29-vision-skill/change.yaml`
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md --path docs/changes/2026-04-29-vision-skill/change.yaml`
  - `git diff --check -- .`
- Expected observable result: PR-mode selector and CI classify `README.md` as `readme`, run lightweight README validation, run vision marker validation for this vision-skill-scoped change, and no longer block as `unclassified-path`.
- Commit message: `M5: route README selector validation`
- Milestone closeout:
  - [x] targeted validation passed
  - [x] PR-mode validation passed
  - [x] lifecycle and change metadata validation passed
  - [x] progress updated
  - [x] validation notes updated
  - [x] milestone committed
- Risks:
  - README marker validation could accidentally treat inline documentation of marker strings as a generated marker block.
- Rollback/recovery:
  - Revert the selector and README validator additions and reopen verify with `README.md` as a known PR-mode blocker.

## Progress

- 2026-04-29: plan created from accepted proposal and approved spec.
- 2026-04-29: plan index updated and plan-creation validation passed.
- 2026-04-30: matching test spec created at `specs/vision-skill.test.md`.
- 2026-04-30: M1 added focused skill-validator regression coverage first, then added `skills/vision/SKILL.md`.
- 2026-04-30: M1 code-review fix clarified that missing README markers stop `mirror` and `revise` before file modification unless explicit handling is authorized.
- 2026-04-30: M2 added `Vision fit` proposal/proposal-review guidance and aligned governance, workflow, and README ownership surfaces around `vision.md`.
- 2026-04-30: CR-M2-F1 tightened absent-root-vision `Vision fit` handling so proposals must use exactly `no vision exists yet` and proposal-review must request revision for nonexistent-vision claims.
- 2026-04-30: M3 refreshed generated `.codex/skills/` and public adapter output through `scripts/build-skills.py` and `scripts/build-adapters.py --version 0.1.1`.
- 2026-04-30: M4 added the change-local metadata pack and synchronized the plan index with implementation closeout readiness.
- 2026-04-30: Verify found PR-mode CI blocked on `README.md` as `unclassified-path`; M5 adds README selector routing and lightweight README validation.
- 2026-04-30: Explain-change created `docs/changes/2026-04-29-vision-skill/explain-change.md` after verify and updated the plan/change handoff to `pr`.
- 2026-04-30: PR #23 merged into `main` at `992d380a6c085bcf612cc627a2c038c0d1a1ff25`; post-merge cleanup moved this plan to `Done`.

## Decision log

- 2026-04-29: no separate architecture artifact required because the approved spec changes workflow guidance, skills, README ownership, and generated distribution output without a new architecture boundary.
- 2026-04-29: broad smoke required by this plan because the initiative touches governance, README ownership, canonical skills, generated skills, and generated public adapters.
- 2026-04-29: the initial plan treated README selector blocking as selector inspection with manual routing because `README.md` was unclassified at the time.
- 2026-04-30: M5 changes that decision for this approved touched surface; `README.md` is now a `readme` surface with lightweight README validation and conditional vision marker validation.
- 2026-04-30: M1 intentionally leaves generated `.codex/skills/` and `dist/adapters/` refresh to M3, as planned; selector inspection for the changed canonical skill identifies generated drift checks that are not M1 pass gates.
- 2026-04-30: M2 canonical proposal and proposal-review skill edits also leave generated `.codex/skills/` and `dist/adapters/` refresh to M3, as planned.
- 2026-04-30: M3 did not add an opencode `vision` command alias; opencode command aliases remain limited to the existing curated lifecycle command set while the full `vision` skill is present under opencode skills.
- 2026-04-30: M4 kept `docs/changes/2026-04-29-vision-skill/explain-change.md` absent because this plan assigned the final durable explanation to the downstream `explain-change` stage after code-review and verify; explain-change has now created that artifact.

## Surprises and discoveries

- 2026-04-30: README ownership guidance intentionally names the vision marker strings, so manual proof for "no generated README front-matter was inserted" uses exact standalone marker-line checks instead of raw marker-string search.

## Validation notes

- 2026-04-29 plan creation:
  - `python scripts/select-validation.py --mode explicit --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md` selected `artifact_lifecycle.validate` and `broad_smoke.repo`.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md` passed.
  - `bash scripts/ci.sh --mode explicit --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md` passed, including plan-required broad smoke.
  - `git diff --check -- docs/plan.md docs/plans/2026-04-29-vision-skill.md docs/proposals/2026-04-29-vision-skill.md specs/vision-skill.md` passed.
- 2026-04-30 test spec creation:
  - `python scripts/select-validation.py --mode explicit --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md` selected `artifact_lifecycle.validate` and `broad_smoke.repo`.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md` passed.
  - `git diff --check -- docs/plans/2026-04-29-vision-skill.md specs/vision-skill.test.md` passed.
  - `bash scripts/ci.sh --mode explicit --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md` passed, including plan-required broad smoke.
- 2026-04-30 M1 implementation:
  - `python scripts/test-skill-validator.py` failed before implementation because `skills/vision/SKILL.md` did not exist after adding the `vision` skill regression test.
  - `python scripts/select-validation.py --mode explicit --path skills/vision/SKILL.md --path scripts/test-skill-validator.py --path docs/plans/2026-04-29-vision-skill.md` selected `skills.validate`, `skills.regression`, `skills.drift`, `adapters.drift`, `artifact_lifecycle.validate`, and `broad_smoke.repo`; generated drift and adapter drift checks are deferred to M3 by the approved milestone split.
  - `python scripts/validate-skills.py skills/vision/SKILL.md` passed.
  - `python scripts/validate-skills.py` passed.
  - `python scripts/test-skill-validator.py` passed.
  - `test ! -e vision.md` passed.
  - `rg -n "create|revise|mirror|vision:start|vision:end|500 words|CONSTITUTION.md|README front-matter" skills/vision/SKILL.md` passed.
- 2026-04-30 M1 code-review fix:
  - `python scripts/test-skill-validator.py` failed before the skill edit because the new regression required explicit create-only marker insertion and `mirror`/`revise` stop behavior.
  - `python scripts/test-skill-validator.py` passed after the skill edit.
  - `python scripts/validate-skills.py skills/vision/SKILL.md` passed.
  - `python scripts/validate-skills.py` passed.
  - `test ! -e vision.md` passed.
  - `rg -n "create|revise|mirror|vision:start|vision:end|500 words|CONSTITUTION.md|README front-matter" skills/vision/SKILL.md` passed.
  - `python scripts/select-validation.py --mode explicit --path skills/vision/SKILL.md --path scripts/test-skill-validator.py --path docs/plans/2026-04-29-vision-skill.md` selected `skills.validate`, `skills.regression`, `skills.drift`, `adapters.drift`, `artifact_lifecycle.validate`, and `broad_smoke.repo`; generated drift and adapter drift checks remain deferred to M3 by the approved milestone split.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md` passed.
  - `git diff --check -- skills/vision/SKILL.md scripts/test-skill-validator.py docs/plans/2026-04-29-vision-skill.md` passed.
- 2026-04-30 M2 implementation:
  - `python scripts/test-skill-validator.py` failed before the M2 edits because the new regression required `Vision fit` and `vision.md` source-of-truth guidance that was not yet present.
  - `python scripts/validate-skills.py` passed.
  - `python scripts/test-skill-validator.py` passed.
  - `test ! -e vision.md` passed.
  - `python scripts/test-select-validation.py` passed.
  - `python scripts/select-validation.py --mode explicit --path CONSTITUTION.md --path AGENTS.md --path docs/workflows.md --path skills/proposal/SKILL.md --path skills/proposal-review/SKILL.md` selected `skills.validate`, `skills.regression`, `skills.drift`, `adapters.drift`, and `selector.regression`; generated drift and adapter drift checks remain deferred to M3 by the approved milestone split.
  - Pre-M5, `python scripts/select-validation.py --mode explicit --path README.md` blocked with `unclassified-path`; verify later rejected that route for PR-mode CI and M5 replaced it with deterministic README validation.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md` passed.
  - `git diff --check -- CONSTITUTION.md AGENTS.md docs/workflows.md README.md skills/proposal/SKILL.md skills/proposal-review/SKILL.md docs/plans/2026-04-29-vision-skill.md scripts/test-skill-validator.py` passed.
- 2026-04-30 CR-M2-F1 code-review fix:
  - `python scripts/test-skill-validator.py` failed before the skill edits because the new regression required exact absent-root-vision `Vision fit` behavior.
  - `python scripts/test-skill-validator.py` passed after the skill edits.
  - `python scripts/validate-skills.py` passed.
  - `test ! -e vision.md` passed.
  - `python scripts/test-select-validation.py` passed.
  - `python scripts/select-validation.py --mode explicit --path skills/proposal/SKILL.md --path skills/proposal-review/SKILL.md --path scripts/test-skill-validator.py --path docs/plans/2026-04-29-vision-skill.md` selected `skills.validate`, `skills.regression`, `skills.drift`, `adapters.drift`, `artifact_lifecycle.validate`, and `broad_smoke.repo`; generated drift, adapter drift, and broad smoke remain deferred until M3 refreshes generated output.
  - `git diff --check -- skills/proposal/SKILL.md skills/proposal-review/SKILL.md scripts/test-skill-validator.py docs/plans/2026-04-29-vision-skill.md` passed.
- 2026-04-30 M3 implementation:
  - `python scripts/build-skills.py --check` failed before generation because generated proposal and proposal-review skills were stale and `.codex/skills/vision/SKILL.md` was missing.
  - `python scripts/build-adapters.py --version 0.1.1 --check` failed before generation because the manifest omitted `vision`, generated adapter skill files for `vision` were missing, and generated proposal/proposal-review adapter skill files were stale.
  - `python scripts/test-adapter-distribution.py` failed before generation because repository generated adapter output was stale.
  - `python scripts/build-skills.py` passed and refreshed generated `.codex/skills/` output.
  - `python scripts/build-adapters.py --version 0.1.1` passed and refreshed generated public adapter output under `dist/adapters/`.
  - Manifest and file inspection confirmed `vision` is included for codex, claude, and opencode adapters; `.codex/skills/vision/SKILL.md` exists; adapter `vision` skill files exist; opencode command aliases do not include `vision`.
  - `python scripts/build-skills.py --check` passed.
  - `python scripts/test-adapter-distribution.py` passed.
  - `python scripts/build-adapters.py --version 0.1.1 --check` passed.
  - `python scripts/validate-adapters.py --version 0.1.1` passed.
  - `python scripts/select-validation.py --mode explicit --path .codex/skills/vision/SKILL.md --path .codex/skills/proposal/SKILL.md --path .codex/skills/proposal-review/SKILL.md --path dist/adapters/manifest.yaml --path dist/adapters/codex/AGENTS.md --path dist/adapters/claude/CLAUDE.md --path dist/adapters/opencode/AGENTS.md --path dist/adapters/codex/.agents/skills/vision/SKILL.md --path dist/adapters/codex/.agents/skills/proposal/SKILL.md --path dist/adapters/codex/.agents/skills/proposal-review/SKILL.md --path dist/adapters/claude/.claude/skills/vision/SKILL.md --path dist/adapters/claude/.claude/skills/proposal/SKILL.md --path dist/adapters/claude/.claude/skills/proposal-review/SKILL.md --path dist/adapters/opencode/.opencode/skills/vision/SKILL.md --path dist/adapters/opencode/.opencode/skills/proposal/SKILL.md --path dist/adapters/opencode/.opencode/skills/proposal-review/SKILL.md` selected `skills.drift`, `adapters.regression`, `adapters.drift`, and `adapters.validate`; all selected commands passed.
  - `git diff --check -- .codex/skills dist/adapters docs/plans/2026-04-29-vision-skill.md` passed.
  - `bash scripts/ci.sh --mode broad-smoke` passed.
- 2026-04-30 M4 implementation:
  - `python scripts/validate-change-metadata.py docs/changes/2026-04-29-vision-skill/change.yaml` failed before metadata creation because the M4 change metadata file did not exist.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md --path docs/changes/2026-04-29-vision-skill/change.yaml` failed before metadata creation because the M4 change metadata file did not exist.
  - `python scripts/validate-skills.py` passed.
  - `python scripts/test-skill-validator.py` passed.
  - `python scripts/build-skills.py --check` passed.
  - `python scripts/test-adapter-distribution.py` passed.
  - `python scripts/build-adapters.py --version 0.1.1 --check` passed.
  - `python scripts/validate-adapters.py --version 0.1.1` passed.
  - `python scripts/test-select-validation.py` passed.
  - `python scripts/test-change-metadata-validator.py` passed.
  - `python scripts/validate-change-metadata.py docs/changes/2026-04-29-vision-skill/change.yaml` passed.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md --path docs/changes/2026-04-29-vision-skill/change.yaml` passed.
  - Pre-M5, `python scripts/select-validation.py --mode explicit --path README.md` blocked with `unclassified-path`; verify later rejected that route for PR-mode CI and M5 replaced it with deterministic README validation.
  - `test ! -e vision.md` passed.
  - `! rg -n '^<!-- vision:start -->$|^<!-- vision:end -->$' README.md` passed, confirming no generated README vision front-matter marker block was inserted.
  - `! git diff --name-only origin/main..HEAD -- scripts | rg -n 'vision|readme|front'` passed, confirming no README mirror helper script was introduced.
  - `git diff --check -- README.md` passed.
  - `bash scripts/ci.sh --mode broad-smoke` passed.
  - `git diff --check -- .` passed.
- 2026-04-30 M5 README selector blocker fix:
  - Focused `python scripts/test-select-validation.py ValidationSelectionTests.test_catalog_matches_v1_contract ValidationSelectionTests.test_readme_path_selects_lightweight_readme_validation ValidationSelectionTests.test_readme_marker_validation_is_selected_for_marker_block_or_vision_scope ValidationSelectionTests.test_pr_mode_routes_readme_without_unclassified_block ValidationSelectionTests.test_readme_validator_accepts_absent_or_valid_standalone_marker_block` failed before implementation because the selector catalog lacked README checks, `README.md` was unclassified, and `scripts/validate-readme.py` did not exist.
  - The same focused selector regression command passed after the selector and README validator changes.
  - `python scripts/test-select-validation.py` passed.
  - `python scripts/select-validation.py --mode explicit --path README.md` passed and selected `readme.validate` without `unclassified-path`.
  - `python scripts/validate-readme.py README.md` passed.
  - `python scripts/validate-readme.py README.md --vision-markers` passed and confirmed no standalone marker block is present.
  - `python scripts/validate-change-metadata.py docs/changes/2026-04-29-vision-skill/change.yaml` passed.
  - `python scripts/validate-artifact-lifecycle.py --mode explicit-paths --path docs/plan.md --path docs/plans/2026-04-29-vision-skill.md --path docs/proposals/2026-04-29-vision-skill.md --path specs/vision-skill.md --path specs/vision-skill.test.md --path docs/changes/2026-04-29-vision-skill/change.yaml` passed.
  - `python scripts/select-validation.py --mode local` passed with no unclassified paths and selected `readme.vision_markers` because the vision-skill surfaces are in scope.
  - `git diff --check -- .` passed.
  - `bash scripts/ci.sh --mode local` passed, including selected README marker validation, selector regression, change metadata, artifact lifecycle, and plan-triggered broad smoke.
  - After the M5 commit, `python scripts/select-validation.py --mode pr --base origin/main --head HEAD` passed with `README.md` classified as `readme`, no unclassified paths, and both `readme.validate` and `readme.vision_markers` selected.
  - After the M5 commit, `bash scripts/ci.sh --mode pr --base origin/main --head HEAD` passed, including README validation and PR-mode broad smoke. The broad-smoke lifecycle pass reported existing unrelated warnings for legacy proposal files and exited successfully.
  - Code-review completed clean with notes and no findings.
  - Verify reran targeted and PR-mode validation successfully, then blocked only on stale tracked handoff metadata in this plan and `docs/changes/2026-04-29-vision-skill/change.yaml`.
  - Metadata correction updated this plan and `docs/changes/2026-04-29-vision-skill/change.yaml`; lifecycle and change metadata validation passed after the correction.
  - Final verify found stale Readiness handoff wording in `specs/vision-skill.md` and `specs/vision-skill.test.md`; those paragraphs were updated and lifecycle, change metadata, selector, and PR-mode CI validation passed after the correction.
  - Explain-change created `docs/changes/2026-04-29-vision-skill/explain-change.md`; selector, explicit CI, lifecycle, change metadata, and whitespace validation passed after the explanation artifact and handoff metadata were updated.
  - Post-merge cleanup moved this plan from `Active` to `Done` after PR #23 merged; selector, explicit CI, lifecycle, change metadata, and whitespace validation passed for the cleanup surfaces.

## Outcome and retrospective

- Done. M1 through M5 implementation closeout is complete. Code-review completed clean with notes and no findings. Verify reran the required validation set successfully and corrected stale tracked handoff metadata plus spec/test-spec readiness wording. Explain-change is complete. PR #23 merged into `main` at `992d380a6c085bcf612cc627a2c038c0d1a1ff25`.

## Readiness

- M1 through M5 are complete.
- Code-review is complete with no findings.
- Verify validation passed after tracked metadata and readiness corrections.
- Explain-change is complete and recorded in `docs/changes/2026-04-29-vision-skill/explain-change.md`.
- PR #23 is merged.
- No repository workflow stage remains pending for this plan. The follow-up `vision create` invocation remains separate project-vision work, not part of this implementation plan.

Files in this skill

  • 2026-04-19-rigorloop-first-release-implementation.md43.6 KB
  • 2026-04-20-artifact-status-lifecycle-ownership.md54.9 KB
  • 2026-04-20-constitution-governance-migration.md15.7 KB
  • 2026-04-20-plan-index-lifecycle-ownership.md33.5 KB
  • 2026-04-21-docs-changes-skill-enforcement.md28.9 KB
  • 2026-04-21-docs-changes-usage-policy.md28 KB
  • 2026-04-21-workflow-stage-autoprogression.md31.3 KB
  • 2026-04-22-code-review-branch-reality-and-traceability.md46.4 KB
  • 2026-04-22-code-review-independence-under-autoprogression.md28.2 KB
  • 2026-04-22-readme-user-value-positioning.md26.4 KB
  • 2026-04-22-test-spec-readiness-and-skill-workflow-alignment.md34.3 KB
  • 2026-04-23-implement-first-attempt-correctness.md35.4 KB
  • 2026-04-24-multi-agent-adapters-first-public-release.md66.9 KB
  • 2026-04-24-skill-invocation-commands-for-adapters.md27.9 KB
  • 2026-04-25-review-finding-resolution-contract.md41.3 KB
  • 2026-04-25-test-layering-and-change-scoped-validation.md48.3 KB
  • 2026-04-28-architecture-skills-c4-arc42-adr.md57.1 KB
  • 2026-04-28-legacy-architecture-lifecycle-normalization.md82.2 KB
  • 2026-04-28-token-and-runtime-efficient-scanning.md51.3 KB
  • 2026-04-29-c4-arc42-package-quality.md64.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…