@ahmed-g-gad/apothem 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/LICENSES/MIT.txt +18 -0
- package/LICENSES/PSF-2.0.txt +47 -0
- package/README.md +549 -0
- package/bin/README.md +37 -0
- package/bin/apothem.mjs +78 -0
- package/package.json +75 -0
- package/pyproject.toml +347 -0
- package/src/apothem/README.md +52 -0
- package/src/apothem/__init__.py +66 -0
- package/src/apothem/__main__.py +28 -0
- package/src/apothem/_vendor/.keep +0 -0
- package/src/apothem/_vendor/__init__.py +25 -0
- package/src/apothem/_vendor/attr/__init__.py +104 -0
- package/src/apothem/_vendor/attr/__init__.pyi +389 -0
- package/src/apothem/_vendor/attr/_cmp.py +160 -0
- package/src/apothem/_vendor/attr/_cmp.pyi +13 -0
- package/src/apothem/_vendor/attr/_compat.py +99 -0
- package/src/apothem/_vendor/attr/_config.py +31 -0
- package/src/apothem/_vendor/attr/_funcs.py +497 -0
- package/src/apothem/_vendor/attr/_make.py +3406 -0
- package/src/apothem/_vendor/attr/_next_gen.py +674 -0
- package/src/apothem/_vendor/attr/_typing_compat.pyi +15 -0
- package/src/apothem/_vendor/attr/_version_info.py +89 -0
- package/src/apothem/_vendor/attr/_version_info.pyi +9 -0
- package/src/apothem/_vendor/attr/converters.py +162 -0
- package/src/apothem/_vendor/attr/converters.pyi +19 -0
- package/src/apothem/_vendor/attr/exceptions.py +95 -0
- package/src/apothem/_vendor/attr/exceptions.pyi +17 -0
- package/src/apothem/_vendor/attr/filters.py +72 -0
- package/src/apothem/_vendor/attr/filters.pyi +6 -0
- package/src/apothem/_vendor/attr/py.typed +0 -0
- package/src/apothem/_vendor/attr/setters.py +79 -0
- package/src/apothem/_vendor/attr/setters.pyi +20 -0
- package/src/apothem/_vendor/attr/validators.py +750 -0
- package/src/apothem/_vendor/attr/validators.pyi +140 -0
- package/src/apothem/_vendor/attr.LICENSE +21 -0
- package/src/apothem/_vendor/attrs/__init__.py +72 -0
- package/src/apothem/_vendor/attrs/__init__.pyi +314 -0
- package/src/apothem/_vendor/attrs/converters.py +3 -0
- package/src/apothem/_vendor/attrs/exceptions.py +3 -0
- package/src/apothem/_vendor/attrs/filters.py +3 -0
- package/src/apothem/_vendor/attrs/py.typed +0 -0
- package/src/apothem/_vendor/attrs/setters.py +3 -0
- package/src/apothem/_vendor/attrs/validators.py +3 -0
- package/src/apothem/_vendor/attrs.LICENSE +21 -0
- package/src/apothem/_vendor/jsonschema/__init__.py +120 -0
- package/src/apothem/_vendor/jsonschema/__main__.py +6 -0
- package/src/apothem/_vendor/jsonschema/_format.py +546 -0
- package/src/apothem/_vendor/jsonschema/_keywords.py +449 -0
- package/src/apothem/_vendor/jsonschema/_legacy_keywords.py +449 -0
- package/src/apothem/_vendor/jsonschema/_types.py +204 -0
- package/src/apothem/_vendor/jsonschema/_typing.py +29 -0
- package/src/apothem/_vendor/jsonschema/_utils.py +355 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/__init__.py +5 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/const_vs_enum.py +30 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/contains.py +28 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/import_benchmark.py +31 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/issue232/issue.json +2653 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/issue232.py +25 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/json_schema_test_suite.py +12 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/nested_schemas.py +56 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/subcomponents.py +42 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/unused_registry.py +35 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/useless_applicator_schemas.py +106 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/useless_keywords.py +32 -0
- package/src/apothem/_vendor/jsonschema/benchmarks/validator_creation.py +14 -0
- package/src/apothem/_vendor/jsonschema/cli.py +292 -0
- package/src/apothem/_vendor/jsonschema/exceptions.py +490 -0
- package/src/apothem/_vendor/jsonschema/protocols.py +230 -0
- package/src/apothem/_vendor/jsonschema/validators.py +1410 -0
- package/src/apothem/_vendor/jsonschema.LICENSE +19 -0
- package/src/apothem/_vendor/jsonschema_specifications/__init__.py +12 -0
- package/src/apothem/_vendor/jsonschema_specifications/_core.py +38 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/metaschema.json +42 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +56 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/content +17 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/core +57 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/format +14 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +37 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/validation +98 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/metaschema.json +58 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +48 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/content +17 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/core +51 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +14 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +14 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +37 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +15 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/validation +98 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft3/metaschema.json +172 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft4/metaschema.json +149 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft6/metaschema.json +153 -0
- package/src/apothem/_vendor/jsonschema_specifications/schemas/draft7/metaschema.json +166 -0
- package/src/apothem/_vendor/jsonschema_specifications.LICENSE +19 -0
- package/src/apothem/_vendor/referencing/__init__.py +7 -0
- package/src/apothem/_vendor/referencing/_attrs.py +31 -0
- package/src/apothem/_vendor/referencing/_attrs.pyi +21 -0
- package/src/apothem/_vendor/referencing/_core.py +739 -0
- package/src/apothem/_vendor/referencing/exceptions.py +165 -0
- package/src/apothem/_vendor/referencing/jsonschema.py +642 -0
- package/src/apothem/_vendor/referencing/py.typed +0 -0
- package/src/apothem/_vendor/referencing/retrieval.py +94 -0
- package/src/apothem/_vendor/referencing/typing.py +61 -0
- package/src/apothem/_vendor/referencing.LICENSE +19 -0
- package/src/apothem/_vendor/rpds/__init__.py +251 -0
- package/src/apothem/_vendor/typing_extensions.LICENSE +279 -0
- package/src/apothem/_vendor/typing_extensions.py +4317 -0
- package/src/apothem/_vendor/vendor.txt +22 -0
- package/src/apothem/_vendor/yaml/__init__.py +389 -0
- package/src/apothem/_vendor/yaml/composer.py +138 -0
- package/src/apothem/_vendor/yaml/constructor.py +748 -0
- package/src/apothem/_vendor/yaml/cyaml.py +100 -0
- package/src/apothem/_vendor/yaml/dumper.py +61 -0
- package/src/apothem/_vendor/yaml/emitter.py +1137 -0
- package/src/apothem/_vendor/yaml/error.py +74 -0
- package/src/apothem/_vendor/yaml/events.py +85 -0
- package/src/apothem/_vendor/yaml/loader.py +63 -0
- package/src/apothem/_vendor/yaml/nodes.py +48 -0
- package/src/apothem/_vendor/yaml/parser.py +588 -0
- package/src/apothem/_vendor/yaml/reader.py +185 -0
- package/src/apothem/_vendor/yaml/representer.py +388 -0
- package/src/apothem/_vendor/yaml/resolver.py +226 -0
- package/src/apothem/_vendor/yaml/scanner.py +1435 -0
- package/src/apothem/_vendor/yaml/serializer.py +110 -0
- package/src/apothem/_vendor/yaml/tokens.py +103 -0
- package/src/apothem/_vendor/yaml.LICENSE +20 -0
- package/src/apothem/agents/README.md +60 -0
- package/src/apothem/agents/codebase-explorer.md +91 -0
- package/src/apothem/agents/convention-auditor.md +93 -0
- package/src/apothem/agents/dependency-auditor.md +97 -0
- package/src/apothem/agents/fact-checker.md +84 -0
- package/src/apothem/agents/mcp-builder.md +86 -0
- package/src/apothem/agents/memory-auditor.md +93 -0
- package/src/apothem/agents/prompt-evaluator.md +87 -0
- package/src/apothem/agents/quality-gate.md +103 -0
- package/src/apothem/agents/refactor-surgeon.md +74 -0
- package/src/apothem/agents/research-scout.md +73 -0
- package/src/apothem/agents/security-scanner.md +83 -0
- package/src/apothem/agents/test-runner.md +84 -0
- package/src/apothem/audit/README.md +73 -0
- package/src/apothem/audit/_scan_lib.py +182 -0
- package/src/apothem/audit/analyze_graph.py +260 -0
- package/src/apothem/audit/build_capability_graph.py +607 -0
- package/src/apothem/audit/build_inventory.py +657 -0
- package/src/apothem/audit/build_plans_provenance.py +997 -0
- package/src/apothem/audit/check_links.py +389 -0
- package/src/apothem/audit/classify_artifacts.py +381 -0
- package/src/apothem/audit/deprecated-tokens.txt +10 -0
- package/src/apothem/audit/execute_plans_migration.py +491 -0
- package/src/apothem/audit/known-projects.txt +15 -0
- package/src/apothem/audit/render_capability_index.py +467 -0
- package/src/apothem/audit/render_inventory.py +405 -0
- package/src/apothem/audit/scan_ai_surfaces.py +1125 -0
- package/src/apothem/audit/scan_ai_surfaces_coarse.py +261 -0
- package/src/apothem/audit/scan_drift_features.py +143 -0
- package/src/apothem/audit/scan_frontmatter.py +293 -0
- package/src/apothem/audit/scan_header_coverage.py +1134 -0
- package/src/apothem/audit/scan_plan_leakage.py +540 -0
- package/src/apothem/audit/scan_plans_discipline.py +188 -0
- package/src/apothem/audit/scan_secrets_pii.py +245 -0
- package/src/apothem/audit/scan_stale_tokens.py +296 -0
- package/src/apothem/audit/synthesize_drift.py +205 -0
- package/src/apothem/benchmarks/README.md +33 -0
- package/src/apothem/benchmarks/__init__.py +3 -0
- package/src/apothem/benchmarks/bench_agents.py +63 -0
- package/src/apothem/benchmarks/bench_hooks.py +93 -0
- package/src/apothem/benchmarks/bench_install.py +58 -0
- package/src/apothem/benchmarks/bench_tests.py +93 -0
- package/src/apothem/benchmarks/bench_validate_ecosystem.py +84 -0
- package/src/apothem/cli/README.md +33 -0
- package/src/apothem/cli/__init__.py +229 -0
- package/src/apothem/cli/_cmd_completion.py +88 -0
- package/src/apothem/cli/_cmd_diff.py +181 -0
- package/src/apothem/cli/_cmd_doctor.py +143 -0
- package/src/apothem/cli/_cmd_harnesses.py +167 -0
- package/src/apothem/cli/_cmd_install.py +327 -0
- package/src/apothem/cli/_cmd_migrate_workspace.py +143 -0
- package/src/apothem/cli/_cmd_profile.py +341 -0
- package/src/apothem/cli/_cmd_status.py +180 -0
- package/src/apothem/cli/_cmd_uninstall.py +215 -0
- package/src/apothem/cli/_cmd_update.py +397 -0
- package/src/apothem/cli/_cmd_verify.py +194 -0
- package/src/apothem/cli/_common_flags.py +90 -0
- package/src/apothem/cli/_epilogs.py +296 -0
- package/src/apothem/cli/_helpers.py +857 -0
- package/src/apothem/cli/_json_formatter.py +21 -0
- package/src/apothem/cli/_materialize.py +376 -0
- package/src/apothem/cli/completions/apothem.bash +30 -0
- package/src/apothem/cli/completions/apothem.fish +19 -0
- package/src/apothem/cli/completions/apothem.ps1 +27 -0
- package/src/apothem/cli/completions/apothem.zsh +42 -0
- package/src/apothem/cli/reference_export.py +126 -0
- package/src/apothem/commands/README.md +125 -0
- package/src/apothem/commands/a11y-audit.md +203 -0
- package/src/apothem/commands/architecture-review.md +194 -0
- package/src/apothem/commands/audit.md +165 -0
- package/src/apothem/commands/code-audit.md +218 -0
- package/src/apothem/commands/code-review.md +193 -0
- package/src/apothem/commands/dependency-audit.md +209 -0
- package/src/apothem/commands/docs-review.md +199 -0
- package/src/apothem/commands/elevate.md +285 -0
- package/src/apothem/commands/eval.md +149 -0
- package/src/apothem/commands/fortress.md +172 -0
- package/src/apothem/commands/freshify.md +168 -0
- package/src/apothem/commands/github-deploy-fresh.md +178 -0
- package/src/apothem/commands/github-deploy-next.md +167 -0
- package/src/apothem/commands/perf-audit.md +198 -0
- package/src/apothem/commands/plan-amend.md +104 -0
- package/src/apothem/commands/plan-audit.md +127 -0
- package/src/apothem/commands/plan-design.md +257 -0
- package/src/apothem/commands/plan-execute.md +495 -0
- package/src/apothem/commands/plan-generate.md +351 -0
- package/src/apothem/commands/plan-review.md +555 -0
- package/src/apothem/commands/plan-spec.md +359 -0
- package/src/apothem/commands/plan-status.md +222 -0
- package/src/apothem/commands/plan.md +173 -0
- package/src/apothem/commands/projectify.md +142 -0
- package/src/apothem/commands/release-readiness.md +142 -0
- package/src/apothem/commands/research-analysis.md +241 -0
- package/src/apothem/commands/research-design.md +231 -0
- package/src/apothem/commands/research-disseminate.md +225 -0
- package/src/apothem/commands/research-experiment.md +232 -0
- package/src/apothem/commands/research-ideate.md +213 -0
- package/src/apothem/commands/research-paper.md +252 -0
- package/src/apothem/commands/research-proposal.md +220 -0
- package/src/apothem/commands/research-publish.md +255 -0
- package/src/apothem/commands/research-review.md +251 -0
- package/src/apothem/commands/research-sources.md +266 -0
- package/src/apothem/commands/research-spec.md +255 -0
- package/src/apothem/commands/research-synthesis.md +233 -0
- package/src/apothem/commands/research-theory.md +218 -0
- package/src/apothem/commands/research.md +181 -0
- package/src/apothem/commands/security-audit.md +196 -0
- package/src/apothem/commands/supply-chain-audit.md +192 -0
- package/src/apothem/commands/test-suite.md +146 -0
- package/src/apothem/commands/threat-model-audit.md +199 -0
- package/src/apothem/commands/ux-review.md +202 -0
- package/src/apothem/commands/workflow.md +162 -0
- package/src/apothem/conformity/README.md +173 -0
- package/src/apothem/conformity/__init__.py +1 -0
- package/src/apothem/conformity/_grep_base.py +93 -0
- package/src/apothem/conformity/agent_capability_grep.py +306 -0
- package/src/apothem/conformity/agents_md_coverage_grep.py +382 -0
- package/src/apothem/conformity/agnosticism_grep.py +311 -0
- package/src/apothem/conformity/always_on_budget_grep.py +318 -0
- package/src/apothem/conformity/bare_except_grep.py +115 -0
- package/src/apothem/conformity/binding_reciprocity_grep.py +151 -0
- package/src/apothem/conformity/brand_mark_grep.py +272 -0
- package/src/apothem/conformity/commented_out_code_grep.py +176 -0
- package/src/apothem/conformity/completion_claim_grep.py +169 -0
- package/src/apothem/conformity/conventional_commit_grep.py +319 -0
- package/src/apothem/conformity/copilot_instructions_presence_grep.py +324 -0
- package/src/apothem/conformity/cross_platform_matrix_grep.py +297 -0
- package/src/apothem/conformity/determinism_grep.py +306 -0
- package/src/apothem/conformity/diagram_staleness_grep.py +154 -0
- package/src/apothem/conformity/dynamism_grep.py +284 -0
- package/src/apothem/conformity/editorconfig_presence_grep.py +281 -0
- package/src/apothem/conformity/file_header_grep.py +502 -0
- package/src/apothem/conformity/freshness_token_grep.py +233 -0
- package/src/apothem/conformity/frontmatter_grep.py +274 -0
- package/src/apothem/conformity/frontmatter_value_grep.py +386 -0
- package/src/apothem/conformity/gate.py +1386 -0
- package/src/apothem/conformity/gitattributes_presence_grep.py +238 -0
- package/src/apothem/conformity/harden_runner_grep.py +320 -0
- package/src/apothem/conformity/hedging_grep.py +129 -0
- package/src/apothem/conformity/license_author_consistency_grep.py +204 -0
- package/src/apothem/conformity/link_check.py +327 -0
- package/src/apothem/conformity/magic_number_grep.py +182 -0
- package/src/apothem/conformity/multi_surface_coherence_grep.py +620 -0
- package/src/apothem/conformity/naming_grep.py +224 -0
- package/src/apothem/conformity/no_global_plans_grep.py +339 -0
- package/src/apothem/conformity/no_toplevel_docs_grep.py +120 -0
- package/src/apothem/conformity/oidc_trusted_publishing_grep.py +291 -0
- package/src/apothem/conformity/option_annotation_grep.py +352 -0
- package/src/apothem/conformity/orphan_output_grep.py +206 -0
- package/src/apothem/conformity/permissions_minimum_scope_grep.py +299 -0
- package/src/apothem/conformity/plain_language_grep.py +559 -0
- package/src/apothem/conformity/plan_next_step_consistency_grep.py +450 -0
- package/src/apothem/conformity/plan_suite_structure_grep.py +534 -0
- package/src/apothem/conformity/plans_discipline_language_grep.py +245 -0
- package/src/apothem/conformity/production_ready_pr_grep.py +200 -0
- package/src/apothem/conformity/recommend_next_step_grep.py +250 -0
- package/src/apothem/conformity/redundancy_grep.py +401 -0
- package/src/apothem/conformity/reference_token_grep.py +230 -0
- package/src/apothem/conformity/registry_capability_consistency_grep.py +368 -0
- package/src/apothem/conformity/secret_leak_grep.py +193 -0
- package/src/apothem/conformity/semver_stability_grep.py +358 -0
- package/src/apothem/conformity/smoke_install_grep.py +194 -0
- package/src/apothem/conformity/static_version_grep.py +284 -0
- package/src/apothem/conformity/token_efficiency_grep.py +185 -0
- package/src/apothem/conformity/unpinned_action_grep.py +115 -0
- package/src/apothem/conformity/user_confirm_grep.py +74 -0
- package/src/apothem/conformity/workflow_concurrency_grep.py +283 -0
- package/src/apothem/harnesses/README.md +63 -0
- package/src/apothem/harnesses/__init__.py +16 -0
- package/src/apothem/harnesses/_shared/README.md +36 -0
- package/src/apothem/harnesses/_shared/__init__.py +12 -0
- package/src/apothem/harnesses/_shared/install_driver.py +281 -0
- package/src/apothem/harnesses/_shared/install_driver_apply.py +612 -0
- package/src/apothem/harnesses/_shared/install_driver_backup.py +535 -0
- package/src/apothem/harnesses/_shared/install_driver_converters.py +310 -0
- package/src/apothem/harnesses/_shared/install_driver_lifecycle.py +495 -0
- package/src/apothem/harnesses/_shared/install_driver_materialize.py +675 -0
- package/src/apothem/harnesses/_shared/install_driver_merge.py +656 -0
- package/src/apothem/harnesses/_shared/install_driver_pathsafety.py +137 -0
- package/src/apothem/harnesses/_shared/install_driver_planvalidation.py +240 -0
- package/src/apothem/harnesses/_shared/install_driver_removal.py +366 -0
- package/src/apothem/harnesses/_shared/install_driver_treeops.py +248 -0
- package/src/apothem/harnesses/_shared/install_driver_types.py +330 -0
- package/src/apothem/harnesses/_shared/wrapper_factories.py +448 -0
- package/src/apothem/harnesses/antigravity/STANDARD-CONVENTION-PIN.md +91 -0
- package/src/apothem/harnesses/antigravity/__init__.py +70 -0
- package/src/apothem/harnesses/antigravity/capabilities.yml +40 -0
- package/src/apothem/harnesses/antigravity/install.py +63 -0
- package/src/apothem/harnesses/antigravity/templates/GEMINI.md +40 -0
- package/src/apothem/harnesses/antigravity/templates/plugin.json +5 -0
- package/src/apothem/harnesses/antigravity/uninstall.py +22 -0
- package/src/apothem/harnesses/antigravity/update.py +10 -0
- package/src/apothem/harnesses/antigravity/verify.py +11 -0
- package/src/apothem/harnesses/claude_code/STANDARD-CONVENTION-PIN.md +65 -0
- package/src/apothem/harnesses/claude_code/__init__.py +107 -0
- package/src/apothem/harnesses/claude_code/capabilities.yml +42 -0
- package/src/apothem/harnesses/claude_code/install.py +147 -0
- package/src/apothem/harnesses/claude_code/templates/settings.json +351 -0
- package/src/apothem/harnesses/claude_code/uninstall.py +23 -0
- package/src/apothem/harnesses/claude_code/update.py +10 -0
- package/src/apothem/harnesses/claude_code/verify.py +11 -0
- package/src/apothem/harnesses/codebuddy/STANDARD-CONVENTION-PIN.md +74 -0
- package/src/apothem/harnesses/codebuddy/__init__.py +49 -0
- package/src/apothem/harnesses/codebuddy/capabilities.yml +34 -0
- package/src/apothem/harnesses/codebuddy/install.py +40 -0
- package/src/apothem/harnesses/codebuddy/templates/apothem-rules.md +37 -0
- package/src/apothem/harnesses/codebuddy/uninstall.py +25 -0
- package/src/apothem/harnesses/codebuddy/update.py +10 -0
- package/src/apothem/harnesses/codebuddy/verify.py +11 -0
- package/src/apothem/harnesses/codex/STANDARD-CONVENTION-PIN.md +79 -0
- package/src/apothem/harnesses/codex/__init__.py +72 -0
- package/src/apothem/harnesses/codex/capabilities.yml +40 -0
- package/src/apothem/harnesses/codex/install.py +69 -0
- package/src/apothem/harnesses/codex/templates/AGENTS.md +40 -0
- package/src/apothem/harnesses/codex/templates/hooks.json +127 -0
- package/src/apothem/harnesses/codex/uninstall.py +23 -0
- package/src/apothem/harnesses/codex/update.py +10 -0
- package/src/apothem/harnesses/codex/verify.py +11 -0
- package/src/apothem/harnesses/cursor/STANDARD-CONVENTION-PIN.md +79 -0
- package/src/apothem/harnesses/cursor/__init__.py +48 -0
- package/src/apothem/harnesses/cursor/capabilities.yml +42 -0
- package/src/apothem/harnesses/cursor/install.py +38 -0
- package/src/apothem/harnesses/cursor/templates/apothem-rules.mdc +40 -0
- package/src/apothem/harnesses/cursor/uninstall.py +25 -0
- package/src/apothem/harnesses/cursor/update.py +10 -0
- package/src/apothem/harnesses/cursor/verify.py +11 -0
- package/src/apothem/harnesses/gemini_cli/STANDARD-CONVENTION-PIN.md +102 -0
- package/src/apothem/harnesses/gemini_cli/__init__.py +52 -0
- package/src/apothem/harnesses/gemini_cli/capabilities.yml +43 -0
- package/src/apothem/harnesses/gemini_cli/install.py +43 -0
- package/src/apothem/harnesses/gemini_cli/templates/GEMINI.md +38 -0
- package/src/apothem/harnesses/gemini_cli/uninstall.py +25 -0
- package/src/apothem/harnesses/gemini_cli/update.py +10 -0
- package/src/apothem/harnesses/gemini_cli/verify.py +11 -0
- package/src/apothem/harnesses/github_copilot/STANDARD-CONVENTION-PIN.md +84 -0
- package/src/apothem/harnesses/github_copilot/__init__.py +47 -0
- package/src/apothem/harnesses/github_copilot/capabilities.yml +42 -0
- package/src/apothem/harnesses/github_copilot/install.py +40 -0
- package/src/apothem/harnesses/github_copilot/templates/copilot-instructions.md +33 -0
- package/src/apothem/harnesses/github_copilot/uninstall.py +25 -0
- package/src/apothem/harnesses/github_copilot/update.py +10 -0
- package/src/apothem/harnesses/github_copilot/verify.py +11 -0
- package/src/apothem/harnesses/glm/STANDARD-CONVENTION-PIN.md +77 -0
- package/src/apothem/harnesses/glm/__init__.py +56 -0
- package/src/apothem/harnesses/glm/capabilities.yml +33 -0
- package/src/apothem/harnesses/glm/install.py +45 -0
- package/src/apothem/harnesses/glm/templates/glm.toml +58 -0
- package/src/apothem/harnesses/glm/uninstall.py +25 -0
- package/src/apothem/harnesses/glm/update.py +10 -0
- package/src/apothem/harnesses/glm/verify.py +11 -0
- package/src/apothem/harnesses/hermes/STANDARD-CONVENTION-PIN.md +57 -0
- package/src/apothem/harnesses/hermes/__init__.py +33 -0
- package/src/apothem/harnesses/hermes/capabilities.yml +36 -0
- package/src/apothem/harnesses/hermes/install.py +17 -0
- package/src/apothem/harnesses/hermes/materializer.py +35 -0
- package/src/apothem/harnesses/hermes/uninstall.py +33 -0
- package/src/apothem/harnesses/hermes/update.py +10 -0
- package/src/apothem/harnesses/hermes/verify.py +11 -0
- package/src/apothem/harnesses/kimi_code/STANDARD-CONVENTION-PIN.md +128 -0
- package/src/apothem/harnesses/kimi_code/__init__.py +59 -0
- package/src/apothem/harnesses/kimi_code/capabilities.yml +40 -0
- package/src/apothem/harnesses/kimi_code/install.py +42 -0
- package/src/apothem/harnesses/kimi_code/templates/AGENTS.md +43 -0
- package/src/apothem/harnesses/kimi_code/uninstall.py +27 -0
- package/src/apothem/harnesses/kimi_code/update.py +10 -0
- package/src/apothem/harnesses/kimi_code/verify.py +11 -0
- package/src/apothem/harnesses/kiro/STANDARD-CONVENTION-PIN.md +77 -0
- package/src/apothem/harnesses/kiro/__init__.py +49 -0
- package/src/apothem/harnesses/kiro/capabilities.yml +36 -0
- package/src/apothem/harnesses/kiro/install.py +39 -0
- package/src/apothem/harnesses/kiro/templates/apothem-rules.md +36 -0
- package/src/apothem/harnesses/kiro/uninstall.py +25 -0
- package/src/apothem/harnesses/kiro/update.py +10 -0
- package/src/apothem/harnesses/kiro/verify.py +11 -0
- package/src/apothem/harnesses/open_claw/STANDARD-CONVENTION-PIN.md +62 -0
- package/src/apothem/harnesses/open_claw/__init__.py +35 -0
- package/src/apothem/harnesses/open_claw/capabilities.yml +35 -0
- package/src/apothem/harnesses/open_claw/install.py +17 -0
- package/src/apothem/harnesses/open_claw/materializer.py +36 -0
- package/src/apothem/harnesses/open_claw/uninstall.py +32 -0
- package/src/apothem/harnesses/open_claw/update.py +10 -0
- package/src/apothem/harnesses/open_claw/verify.py +11 -0
- package/src/apothem/harnesses/opencode/STANDARD-CONVENTION-PIN.md +76 -0
- package/src/apothem/harnesses/opencode/__init__.py +35 -0
- package/src/apothem/harnesses/opencode/capabilities.yml +43 -0
- package/src/apothem/harnesses/opencode/install.py +17 -0
- package/src/apothem/harnesses/opencode/materializer.py +31 -0
- package/src/apothem/harnesses/opencode/uninstall.py +34 -0
- package/src/apothem/harnesses/opencode/update.py +10 -0
- package/src/apothem/harnesses/opencode/verify.py +11 -0
- package/src/apothem/harnesses/qwen_code/STANDARD-CONVENTION-PIN.md +87 -0
- package/src/apothem/harnesses/qwen_code/__init__.py +37 -0
- package/src/apothem/harnesses/qwen_code/capabilities.yml +43 -0
- package/src/apothem/harnesses/qwen_code/install.py +19 -0
- package/src/apothem/harnesses/qwen_code/materializer.py +174 -0
- package/src/apothem/harnesses/qwen_code/templates/QWEN.md +30 -0
- package/src/apothem/harnesses/qwen_code/uninstall.py +34 -0
- package/src/apothem/harnesses/qwen_code/update.py +10 -0
- package/src/apothem/harnesses/qwen_code/verify.py +11 -0
- package/src/apothem/harnesses/trae/STANDARD-CONVENTION-PIN.md +70 -0
- package/src/apothem/harnesses/trae/__init__.py +49 -0
- package/src/apothem/harnesses/trae/capabilities.yml +34 -0
- package/src/apothem/harnesses/trae/install.py +38 -0
- package/src/apothem/harnesses/trae/templates/apothem-rules.md +37 -0
- package/src/apothem/harnesses/trae/uninstall.py +25 -0
- package/src/apothem/harnesses/trae/update.py +10 -0
- package/src/apothem/harnesses/trae/verify.py +11 -0
- package/src/apothem/harnesses/windsurf/STANDARD-CONVENTION-PIN.md +91 -0
- package/src/apothem/harnesses/windsurf/__init__.py +52 -0
- package/src/apothem/harnesses/windsurf/capabilities.yml +40 -0
- package/src/apothem/harnesses/windsurf/install.py +41 -0
- package/src/apothem/harnesses/windsurf/templates/apothem-rules.md +37 -0
- package/src/apothem/harnesses/windsurf/uninstall.py +25 -0
- package/src/apothem/harnesses/windsurf/update.py +10 -0
- package/src/apothem/harnesses/windsurf/verify.py +11 -0
- package/src/apothem/harnesses/zed/STANDARD-CONVENTION-PIN.md +92 -0
- package/src/apothem/harnesses/zed/__init__.py +57 -0
- package/src/apothem/harnesses/zed/capabilities.yml +38 -0
- package/src/apothem/harnesses/zed/install.py +41 -0
- package/src/apothem/harnesses/zed/templates/apothem-rules.md +32 -0
- package/src/apothem/harnesses/zed/uninstall.py +28 -0
- package/src/apothem/harnesses/zed/update.py +10 -0
- package/src/apothem/harnesses/zed/verify.py +11 -0
- package/src/apothem/hooks/README.md +81 -0
- package/src/apothem/hooks/__init__.py +24 -0
- package/src/apothem/hooks/askuserquestion_validator.py +380 -0
- package/src/apothem/hooks/dispatch.py +296 -0
- package/src/apothem/hooks/emit_hook_context.py +444 -0
- package/src/apothem/hooks/hooks.json +318 -0
- package/src/apothem/hooks/lib/README.md +39 -0
- package/src/apothem/hooks/lib/__init__.py +18 -0
- package/src/apothem/hooks/lib/bootstrap.ps1 +129 -0
- package/src/apothem/hooks/lib/bootstrap.sh +103 -0
- package/src/apothem/hooks/lib/events.py +51 -0
- package/src/apothem/hooks/lib/find-pwsh.ps1 +78 -0
- package/src/apothem/hooks/lib/find-pwsh.sh +76 -0
- package/src/apothem/hooks/lib/find-python.ps1 +63 -0
- package/src/apothem/hooks/lib/find-python.sh +97 -0
- package/src/apothem/hooks/lib/log.py +43 -0
- package/src/apothem/hooks/lib/resolve_root.py +264 -0
- package/src/apothem/hooks/messages/postcompact.md +14 -0
- package/src/apothem/hooks/messages/posttooluse-proactive-compaction.md +46 -0
- package/src/apothem/hooks/messages/precompact.md +14 -0
- package/src/apothem/hooks/messages/pretooluse-askuserquestion-recommended.md +65 -0
- package/src/apothem/hooks/messages/pretooluse-bash-plan-guard.md +97 -0
- package/src/apothem/hooks/messages/pretooluse-bash.md +39 -0
- package/src/apothem/hooks/messages/pretooluse-conformity.md +70 -0
- package/src/apothem/hooks/messages/pretooluse-dependency-guard.md +21 -0
- package/src/apothem/hooks/messages/pretooluse-edit-header-guard.md +61 -0
- package/src/apothem/hooks/messages/pretooluse-edit.md +21 -0
- package/src/apothem/hooks/messages/pretooluse-eval-guard.md +39 -0
- package/src/apothem/hooks/messages/pretooluse-notebookedit.md +11 -0
- package/src/apothem/hooks/messages/pretooluse-write-header-guard.md +45 -0
- package/src/apothem/hooks/messages/pretooluse-write-plan-guard.md +72 -0
- package/src/apothem/hooks/messages/pretooluse-write.md +21 -0
- package/src/apothem/hooks/messages/sessionstart.md +15 -0
- package/src/apothem/hooks/messages/stop.md +27 -0
- package/src/apothem/hooks/proactive_compaction_tracker.py +327 -0
- package/src/apothem/hooks/session_start_bootstrap.py +472 -0
- package/src/apothem/lib/README.md +42 -0
- package/src/apothem/lib/__init__.py +13 -0
- package/src/apothem/lib/atomic_io.py +189 -0
- package/src/apothem/lib/auditor.py +687 -0
- package/src/apothem/lib/clean_slate.py +396 -0
- package/src/apothem/lib/contexts.py +352 -0
- package/src/apothem/lib/data_home.py +255 -0
- package/src/apothem/lib/frontmatter.py +101 -0
- package/src/apothem/lib/harness_materializer.py +213 -0
- package/src/apothem/lib/harness_protocol.py +59 -0
- package/src/apothem/lib/harness_registry.py +282 -0
- package/src/apothem/lib/harness_registry_data.py +843 -0
- package/src/apothem/lib/install_ledger.py +347 -0
- package/src/apothem/lib/learning.py +540 -0
- package/src/apothem/lib/memory.py +347 -0
- package/src/apothem/lib/parallel_sweep.py +234 -0
- package/src/apothem/lib/plan_tiers.py +200 -0
- package/src/apothem/lib/plugin_bootstrap.py +132 -0
- package/src/apothem/lib/plugin_tree.py +599 -0
- package/src/apothem/lib/profile.py +755 -0
- package/src/apothem/lib/profile_projection.py +198 -0
- package/src/apothem/lib/propagation-manifest.yaml +878 -0
- package/src/apothem/lib/propagation.py +220 -0
- package/src/apothem/lib/python_resolver.py +189 -0
- package/src/apothem/lib/reporter.py +62 -0
- package/src/apothem/lib/workspace_migration.py +323 -0
- package/src/apothem/output-styles/README.md +41 -0
- package/src/apothem/output-styles/concise-engineer.md +49 -0
- package/src/apothem/output-styles/default-architect.md +52 -0
- package/src/apothem/output-styles/default.md +113 -0
- package/src/apothem/output-styles/forensic-auditor.md +63 -0
- package/src/apothem/py.typed +0 -0
- package/src/apothem/rules/README.md +121 -0
- package/src/apothem/rules/agent-capability-discipline-matrix.md +89 -0
- package/src/apothem/rules/agent-capability-discipline.md +78 -0
- package/src/apothem/rules/agent-orchestration-patterns.md +144 -0
- package/src/apothem/rules/agent-orchestration.md +65 -0
- package/src/apothem/rules/agents-md-convention.md +86 -0
- package/src/apothem/rules/agile-sprints-elements.md +135 -0
- package/src/apothem/rules/agile-sprints.md +64 -0
- package/src/apothem/rules/agnostic-posture-checklist.md +47 -0
- package/src/apothem/rules/agnostic-posture.md +48 -0
- package/src/apothem/rules/authoritative-referencing-quotation.md +50 -0
- package/src/apothem/rules/authoritative-referencing.md +66 -0
- package/src/apothem/rules/authority-inquiry-categories.md +58 -0
- package/src/apothem/rules/authority-inquiry.md +54 -0
- package/src/apothem/rules/auto-memory-topic-files.md +86 -0
- package/src/apothem/rules/auto-memory.md +67 -0
- package/src/apothem/rules/bidirectional-binding.md +123 -0
- package/src/apothem/rules/canonical-layout-reporting-tiers.md +212 -0
- package/src/apothem/rules/canonical-layout.md +60 -0
- package/src/apothem/rules/clean-architecture-layers.md +186 -0
- package/src/apothem/rules/clean-room-generation-protocols.md +124 -0
- package/src/apothem/rules/clean-room-generation.md +59 -0
- package/src/apothem/rules/code-craft-conventions.md +101 -0
- package/src/apothem/rules/code-craft-markdown.md +138 -0
- package/src/apothem/rules/code-craft-python.md +154 -0
- package/src/apothem/rules/code-craft-shell.md +192 -0
- package/src/apothem/rules/cognitive-identity-techniques.md +180 -0
- package/src/apothem/rules/cognitive-identity.md +81 -0
- package/src/apothem/rules/context-management-budget.md +46 -0
- package/src/apothem/rules/context-management-protocol.md +161 -0
- package/src/apothem/rules/context-management-scratch.md +128 -0
- package/src/apothem/rules/context-management.md +85 -0
- package/src/apothem/rules/definitiveness-virtues.md +67 -0
- package/src/apothem/rules/definitiveness.md +58 -0
- package/src/apothem/rules/determinism.md +81 -0
- package/src/apothem/rules/disclosure-ledger-markers.md +58 -0
- package/src/apothem/rules/disclosure-ledger.md +52 -0
- package/src/apothem/rules/dynamism.md +38 -0
- package/src/apothem/rules/etc-extension.md +57 -0
- package/src/apothem/rules/expertise-posture-elements.md +68 -0
- package/src/apothem/rules/expertise-posture.md +54 -0
- package/src/apothem/rules/freshness-facade.md +64 -0
- package/src/apothem/rules/harness-adapter-shape-schemas.md +162 -0
- package/src/apothem/rules/harness-adapter-shape.md +42 -0
- package/src/apothem/rules/host-discovery-manifests.md +50 -0
- package/src/apothem/rules/host-discovery.md +56 -0
- package/src/apothem/rules/i18n-discipline-locale-cohorts.md +120 -0
- package/src/apothem/rules/i18n-discipline.md +70 -0
- package/src/apothem/rules/interactive-questions-canonical-shapes.md +590 -0
- package/src/apothem/rules/interactive-questions-detail.md +41 -0
- package/src/apothem/rules/interactive-questions-sweep-matchers.md +184 -0
- package/src/apothem/rules/interactive-questions.md +89 -0
- package/src/apothem/rules/large-file-generation.md +112 -0
- package/src/apothem/rules/large-file-reading.md +59 -0
- package/src/apothem/rules/living-docs.md +85 -0
- package/src/apothem/rules/multi-agent-workflow.md +57 -0
- package/src/apothem/rules/operational-mandates-expanded.md +78 -0
- package/src/apothem/rules/operational-mandates.md +88 -0
- package/src/apothem/rules/option-annotation-form.md +60 -0
- package/src/apothem/rules/option-annotation.md +45 -0
- package/src/apothem/rules/own-voice-reimplementation.md +86 -0
- package/src/apothem/rules/performance-discipline.md +91 -0
- package/src/apothem/rules/persistent-conventions-vigilance-checklist.md +54 -0
- package/src/apothem/rules/persistent-conventions-vigilance.md +61 -0
- package/src/apothem/rules/plain-language.md +56 -0
- package/src/apothem/rules/planning-techniques.md +130 -0
- package/src/apothem/rules/pre-emission-gate-bars.md +86 -0
- package/src/apothem/rules/pre-emission-gate.md +54 -0
- package/src/apothem/rules/production-ready-prs-surfaces.md +162 -0
- package/src/apothem/rules/production-ready-prs.md +83 -0
- package/src/apothem/rules/propagation.md +63 -0
- package/src/apothem/rules/recommend-next-step.md +106 -0
- package/src/apothem/rules/refactoring-discipline.md +76 -0
- package/src/apothem/rules/session-closure.md +44 -0
- package/src/apothem/rules/sota-elevation-exemplars.md +76 -0
- package/src/apothem/rules/sota-elevation.md +52 -0
- package/src/apothem/rules/source-accessibility.md +58 -0
- package/src/apothem/rules/surgical-manipulation.md +48 -0
- package/src/apothem/rules/systemic-participation-relations.md +108 -0
- package/src/apothem/rules/systemic-participation.md +70 -0
- package/src/apothem/rules/ten-dimension-check-dimensions.md +52 -0
- package/src/apothem/rules/ten-dimension-check.md +59 -0
- package/src/apothem/rules/token-budget-discipline.md +81 -0
- package/src/apothem/rules/token-efficiency-rewrite-protocol.md +79 -0
- package/src/apothem/rules/token-efficiency-rewrite.md +77 -0
- package/src/apothem/rules/tool-use-discipline.md +48 -0
- package/src/apothem/rules/visual-leverage.md +102 -0
- package/src/apothem/schemas/NOTICE.md +9 -0
- package/src/apothem/schemas/README.md +104 -0
- package/src/apothem/schemas/__init__.py +176 -0
- package/src/apothem/schemas/advisory-finding.schema.json +111 -0
- package/src/apothem/schemas/agent.schema.json +106 -0
- package/src/apothem/schemas/authorship-header.txt +1 -0
- package/src/apothem/schemas/cohort-manifest.yaml +248 -0
- package/src/apothem/schemas/cohort-metadata-vocabulary.yaml +168 -0
- package/src/apothem/schemas/cohort.schema.json +113 -0
- package/src/apothem/schemas/command.schema.json +68 -0
- package/src/apothem/schemas/compatibility-matrix.yaml +432 -0
- package/src/apothem/schemas/context-fragment.schema.json +64 -0
- package/src/apothem/schemas/freshness-token-denylist.txt +51 -0
- package/src/apothem/schemas/handoff-manifest.yaml +353 -0
- package/src/apothem/schemas/header-exceptions.txt +141 -0
- package/src/apothem/schemas/header-visibility.yaml +39 -0
- package/src/apothem/schemas/learning-signal.schema.json +46 -0
- package/src/apothem/schemas/memory-record.schema.json +61 -0
- package/src/apothem/schemas/output-style.schema.json +40 -0
- package/src/apothem/schemas/plan.schema.json +51 -0
- package/src/apothem/schemas/plugin.schema.json +83 -0
- package/src/apothem/schemas/profile.example.yaml +70 -0
- package/src/apothem/schemas/profile.minimal.yaml +6 -0
- package/src/apothem/schemas/profile.schema.json +396 -0
- package/src/apothem/schemas/reference-token-denylist.txt +25 -0
- package/src/apothem/schemas/skill.schema.json +75 -0
- package/src/apothem/skills/README.md +93 -0
- package/src/apothem/skills/dependency-upgrade/SKILL.md +105 -0
- package/src/apothem/skills/dev-toolkit/SKILL.md +120 -0
- package/src/apothem/skills/diagram-authoring/SKILL.md +113 -0
- package/src/apothem/skills/document-authoring/SKILL.md +118 -0
- package/src/apothem/skills/ecosystem-audit/SKILL.md +108 -0
- package/src/apothem/skills/ecosystem-audit/references/audit-fortress.md +85 -0
- package/src/apothem/skills/ecosystem-audit/references/procedure.md +162 -0
- package/src/apothem/skills/eval-harness/SKILL.md +88 -0
- package/src/apothem/skills/incident-runbook/SKILL.md +92 -0
- package/src/apothem/skills/multi-source-research/SKILL.md +90 -0
- package/src/apothem/skills/plan-suite/SKILL.md +118 -0
- package/src/apothem/skills/plan-suite/master_template.md +1324 -0
- package/src/apothem/skills/projectify/SKILL.md +117 -0
- package/src/apothem/skills/prompt-engineering/SKILL.md +122 -0
- package/src/apothem/skills/refactor-extract/SKILL.md +85 -0
- package/src/apothem/skills/research-suite/SKILL.md +170 -0
- package/src/apothem/skills/research-suite/references/directory-structure.md +47 -0
- package/src/apothem/skills/research-suite/references/lifecycle.md +67 -0
- package/src/apothem/skills/research-suite/references/principal-investigator-framework.md +37 -0
- package/src/apothem/skills/research-suite/references/rigor-mandates.md +30 -0
- package/src/apothem/skills/research-suite/research_template.md +476 -0
- package/src/apothem/skills/secret-rotation/SKILL.md +87 -0
- package/src/apothem/skills/source-synthesis/SKILL.md +92 -0
- package/src/apothem/skills/surgical-guard/SKILL.md +118 -0
- package/src/apothem/skills/test-authoring/SKILL.md +85 -0
- package/src/apothem/skills/vuln-triage/SKILL.md +91 -0
- package/src/apothem/skills/workflow/SKILL.md +139 -0
- package/src/apothem/statuslines/README.md +26 -0
- package/src/apothem/statuslines/__init__.py +20 -0
- package/src/apothem/statuslines/conformity.json +5 -0
- package/src/apothem/statuslines/render.py +334 -0
- package/src/apothem/statuslines/statusline.md +50 -0
- package/src/apothem/templates/README.md +43 -0
- package/src/apothem/templates/agents-md-template.md +80 -0
- package/src/apothem/templates/consideration-log.md +39 -0
- package/src/apothem/templates/expertise-gap-log.md +56 -0
- package/src/apothem/templates/master-index-template.md +93 -0
- package/src/apothem/templates/potency-map.md +53 -0
- package/src/apothem/templates/preservation-audit.md +60 -0
- package/src/apothem/templates/question-resolution-audit.md +52 -0
- package/src/apothem/templates/trace-matrix-template.md +77 -0
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "plan-review"
|
|
3
|
+
version: "0.1.0"
|
|
4
|
+
updated: "2026-06-10"
|
|
5
|
+
description: "Forensic, blind, line-by-line audit of an existing plan suite — prose fidelity, internal consistency, completeness, quality, risk, standards, domain, and architecture — then refine through interactive Q&A. Mid-chain `/plan` stage; emits Review Scorecards that gate downstream execution at SHARED+ and a zero-open-finding terminal verdict."
|
|
6
|
+
argument-hint: "[path/to/plan-suite/] [--focus AREA] [--dry-run]"
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
portability: "universal"
|
|
9
|
+
allowed-tools: "*"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
13
|
+
|
|
14
|
+
# /plan-review — Review and Refine an Existing Plan Suite
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Role
|
|
19
|
+
|
|
20
|
+
You are a **meticulous forensic auditor**, **Technical Co-Founder**, **strategic planning consultant**, **Cognitive Insurgent** (see `rules/cognitive-identity.md`), and **creative quality assessor**. Your review is a rigorous, line-by-line audit — every claim verified, every cross-reference traced, every dependency walked. Three principles: **(i) exhaustive enumeration**, **(ii) bidirectional reconciliation**, **(iii) quantitative grading**. You also assess whether the plan demonstrates structural novelty and conceptual elegance — functional but forgettable plans fail the creative-quality gate (CM-21).
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Blind Review Mandate
|
|
25
|
+
|
|
26
|
+
**This is a STRICT, BLIND, FRESH review.** Approach the plan suite as if you have NEVER seen it — even if you generated it moments ago. Every claim, cross-reference, dependency, naming choice, interface contract, decision record, phase boundary, task specification, and acceptance criterion is verified FROM SCRATCH with zero residual trust. No assumption carries over from generation. No familiarity breeds leniency. No prior context grants any element a pass.
|
|
27
|
+
|
|
28
|
+
**The Blind Review Protocol demands:**
|
|
29
|
+
|
|
30
|
+
1. **Zero inherited trust.** Treat every element as unverified until you have personally traced it to its source, confirmed its accuracy, and validated its consistency with every element it touches. Prior involvement in generating the plan creates confirmation bias — actively counteract it by seeking disconfirmation.
|
|
31
|
+
2. **Deliberate adversarial stance.** Your default posture is skepticism. Every claim is suspect. Treat every dependency as wrong until proven correct; every naming choice as inconsistent until proven uniform; every acceptance criterion as incomplete until proven exhaustive; every scope boundary as leaky until proven sealed. Prove each element correct — do not assume correctness and hunt for exceptions.
|
|
32
|
+
3. **Exhaustive coverage with no shortcuts.** Within scope (all dimensions when `--focus all`, or the targeted dimensions when a specific `--focus` is selected), every phase file, task, prerequisite, output, input, decision reference, dependency edge, naming instance, interface contract, preamble mandate, scope boundary, acceptance criterion, and verification assertion is individually examined. "Spot-checking" is not reviewing. An unexamined in-scope element is unverified. A focused review achieves exhaustive coverage within its targeted dimensions — it does not claim coverage of dimensions outside its scope.
|
|
33
|
+
4. **Methodical sequencing.** Follow the workflow steps in exact order. Do not skip ahead. Do not mentally batch steps. A step is not complete until every sub-item is individually addressed and its finding (even "no issue found") is recorded.
|
|
34
|
+
5. **Detail-oriented evidence capture.** Every finding — issue, confirmation, or observation — cites the specific file, section, line content, and cross-reference target. Vague findings ("some inconsistencies in naming") are prohibited. State exactly WHICH name, WHERE it appears, WHAT it should be, and WHY.
|
|
35
|
+
6. **Definitive resolution.** Every issue is classified with a clear severity, recommendation, and rationale. No ambiguous "might be an issue" hedging. Either it IS an issue (state severity and fix) or it is NOT (state why it passes). Every element exits the review in one of two states: VERIFIED or FINDING.
|
|
36
|
+
7. **No residual concerns.** At conclusion, there are ZERO unresolved questions, ZERO unexamined elements, ZERO deferred checks. If something cannot be verified (missing file, unclear prose), that itself is a finding — never silently skipped. The review is complete only when the auditor can state with certainty: "Every element of this plan suite has been individually examined and either verified clean or logged as a finding."
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Instructions
|
|
41
|
+
|
|
42
|
+
Execute `/plan-review`. Conduct a multi-pass review verifying prose fidelity, internal consistency, and quality — then refine through Q&A.
|
|
43
|
+
|
|
44
|
+
**Reference Template:** check `CLAUDE.md` for the template path. **Requires template v0.1.0+.** Governance scales with seriousness per CLAUDE.md Section 4. Creative architecture (cognitive identity rule, CM-21) is evaluated as part of quality analysis.
|
|
45
|
+
|
|
46
|
+
**Valid `--focus` values:** `prose-fidelity`, `completeness`, `consistency`, `quality`, `risk`, `standards`, `domain`, `architecture`, `all` (default). `all` executes every audit step; named values skip non-matching steps.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Pipeline Contract
|
|
51
|
+
|
|
52
|
+
**Pipeline position — mid-chain.** This command sits between `/plan-generate` (upstream producer) and `/plan-design (CONDITIONAL — architecture-bearing suites only) → /plan-execute` (downstream consumer; for non-architecture-bearing suites, `/plan-execute` consumes directly). Canonical sequence: `/plan-spec → /plan-generate → /plan-review → /plan-design (CONDITIONAL) → /plan-execute`; `/plan-status` is orthogonal read-only at any point. It consumes the generated suite plus its emitted Handoff Manifest, applies forensic audit and refinement, and emits an updated Manifest carrying the review verdict.
|
|
53
|
+
|
|
54
|
+
**Handoff Manifest.**
|
|
55
|
+
|
|
56
|
+
- **Consumed.** `{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml`. The upstream manifest carries the suite-generation outcome (phase counts, dependency-graph hash, scorecard verdicts, spec-version pin) and the four-discipline attestation block from `/plan-spec`. `/plan-review` refuses to proceed when the upstream manifest's `refuses_to_proceed_if` preconditions fail.
|
|
57
|
+
- **Emitted.** The same manifest path, augmented with the review outcome — Review Scorecards verdicts (Prose Fidelity, Internal Consistency, Completeness, Quality, Risk, Standards, Domain, Architecture, Creative Quality), per-finding severity counts, the Review Scope (which dimensions were audited; relevant when `--focus` is narrower than `all`), and the unaudited-dimensions list. Downstream `/plan-execute` reads the Review Scorecards to gate execution at SHARED+ seriousness.
|
|
58
|
+
|
|
59
|
+
**Pre-flight inquiry set.** Step 7 (User Clarification Batches) emits the inquiry set as part of audit-finding disposition — every finding above the disposition threshold surfaces via the structured-inquiry channel per `rules/interactive-questions.md`. The pre-flight surface is canonicalized here so review-time inquiries surface before the audit fires (Step 1 Discovery), not only after it completes; the upfront surface inventories authoritative-data gaps the audit would otherwise stall on. The post-audit batches in Step 7 retain their per-finding disposition role.
|
|
60
|
+
|
|
61
|
+
**Pre-emission gate.** Step 8 (Final Review Report Emission) runs the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the emitted review report, the updated PLAN-NOTES.md scorecards, and the augmented Manifest. The gate attestation block is recorded in the review report and surfaced in the Manifest. Failure on any bar blocks the report's promotion until resolved.
|
|
62
|
+
|
|
63
|
+
### Inquiry Cadence (D4)
|
|
64
|
+
|
|
65
|
+
This command operates at **maximal structured-inquiry saturation** per D4 (Q-022). Every finding triage, severity ratification, blind-re-audit decision, disposition choice (accept · revise · reject · defer), revision-impact map, and authority-data inquiry routes through the structured-inquiry channel per `rules/interactive-questions.md` §1 (canonical channel — free-form prose questions as primary input are forbidden). Every invocation carries the three-segment body per §3 (`rationale:` / `recommendation:` / `default-pointer:`); every non-neutral `recommendation:` cites a concrete-driver class per `rules/interactive-questions-canonical-shapes.md` §3.2.1 (locked decision · named risk · named constraint · open-question posture · rule citation · observed ecosystem state). Up to four questions batch per invocation. Treat the generated suite as a newbie sketch under the Blind Review Mandate — surface every gap rather than inheriting trust from prior generation. **Question-fatigue-optimization is FORBIDDEN**. The DURING cadence runs throughout Steps 4 (Gap Analysis), 5 (Risk Assessment), 7 (User Clarification Batches), 8 (Propose Revisions), and 9 (Wait for Approval); the END-of-command synthesis question fires per D6 just before Step 12 review-report finalization (see `End-of-Command Synthesis (D6)` at the workflow tail).
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Foundational Stanzas
|
|
70
|
+
|
|
71
|
+
The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror — honored inline here, not by cross-reference alone.
|
|
72
|
+
|
|
73
|
+
### Refusal & Escalation
|
|
74
|
+
|
|
75
|
+
REFUSE any task whose scope exceeds this command's mission (forensic audit and refinement of an existing plan suite — prose fidelity / internal consistency / quality / risk / standards / domain / architecture). Refusal is explicit: name what was refused, name the mission boundary crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md` (three-segment annotation; never free-form prose as primary input). The Blind Review Mandate forbids inherited trust from prior generation; any pressure to soften a finding because the operator generated the plan themselves is itself a refusable scope-overreach.
|
|
76
|
+
|
|
77
|
+
### Output Surface
|
|
78
|
+
|
|
79
|
+
Review outputs are plan-suite-internal: scorecards write to `<project-root>/.apothem/plans/{suite}/PLAN-NOTES.md` `## Review Scorecards`, the Review Summary writes to `<project-root>/.apothem/plans/{suite}/PROGRESS.md`, the augmented Manifest writes to `<project-root>/.apothem/plans/{suite}/_inputs/handoff-manifest.yml`, concise per-finding revision-impact maps land in PLAN-NOTES.md, and durable large review reports or evidence tables land in `<project-root>/.apothem/plans/{suite}/_outputs/` per the suite-locality invariant at `rules/context-management.md` §2.6.1 (which governs `_inputs/`, `_outputs/`, and `_spec/` siblings). Findings disposition surfaces via structured-inquiry invocations whose answers are externalized to PLAN-NOTES.md inline. NEVER write review artifacts outside the suite folder, NEVER write to a global plans directory under any harness config root from a downstream-project context, and NEVER write to any other global-ecosystem location.
|
|
80
|
+
|
|
81
|
+
### File-Authoring Contract
|
|
82
|
+
|
|
83
|
+
Plan-suite review artifacts (PLAN-NOTES.md scorecard updates, PROGRESS.md Review Summary updates, the per-phase REPORT.md when revisions touch one, the augmented Manifest) are plan-internal and banner-exempt per the `.plans/**` exception class at `src/apothem/schemas/header-exceptions.txt`. The injector at `scripts/inject-header.{sh,py}` is therefore NOT invoked on review emissions. The contract applies to any orchestrator that materializes this command's findings into a non-plan artifact (a separate audit report at the host's documentation surface, for example) — that orchestrator routes the new file through the injector per the canonical authorship-header policy.
|
|
84
|
+
|
|
85
|
+
### Structured Inquiry on Ambiguity
|
|
86
|
+
|
|
87
|
+
When uncertain about identity / scope / preference / security / naming / infrastructure / version data — or any branch-point, deletion decision, or judgment call that materially affects the outcome — route the resolution through the structured-inquiry channel with the three-segment annotation per `rules/interactive-questions.md` §3 (rationale / recommendation / default-pointer). Free-form prose questions as primary input are forbidden. NEVER fabricate authoritative data. Step 7 (User Clarification Batches) is the dominant inquiry surface — every finding above the disposition threshold surfaces through one batched invocation per thematic group; per-revision approval at Step 9 routes through the canonical channel. REINTERPRETED prose-fidelity findings always require operator confirmation.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Sequence Gate
|
|
92
|
+
|
|
93
|
+
`/plan-review` audits a generated suite; it MUST NOT run out of order. Before Step 1, verify the predecessor precondition on disk:
|
|
94
|
+
|
|
95
|
+
- A generated plan suite is present — PREAMBLE.md, MASTER-PLAN.md, PROGRESS.md, and the per-phase folders under `phases/`.
|
|
96
|
+
|
|
97
|
+
When the generated suite is absent, the stage REFUSES to run and emits the single definitive line `Blocked: run /plan-generate first` — `/plan-generate` is the predecessor that produces the suite this command audits. No partial review proceeds against a suite that has not been generated.
|
|
98
|
+
|
|
99
|
+
An explicit `--override` flag bypasses this gate. When `--override` is used, the bypass MUST be recorded as a finding in the suite's PLAN-NOTES.md (and the suite's findings surface) with the rationale and the missing precondition named, so the out-of-order run is auditable.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Workflow
|
|
104
|
+
|
|
105
|
+
### Step 1: Load Plan Suite
|
|
106
|
+
|
|
107
|
+
Deploy a Research Team (CM-25A) for parallel file extraction (structured summaries, not raw content — CM-25C return contract: max 500 tokens per agent; required fields: `status`, `summary`, `evidence`; on failure: `status=failed` with explicit reason and scope covered). If resuming: Session Start Protocol (CM-14) — including rules from `rules/*.md`.
|
|
108
|
+
|
|
109
|
+
Verify all mandatory files exist (including the `phases/` directory with phase folders). If missing → STOP, recommend `/plan-generate`. Load rules (`rules/*.md`) and relevant skills. If PROGRESS.md carries a Resumption Contract, use its convention anchors and critical-files manifest for efficient loading. Read ALL files — every phase file (`phases/**/PHASE.md`, recursing into sub-phase folders), every infrastructure file, every report (`phases/**/REPORT.md`). Locate the original prose (ask the user if not found; if unavailable, proceed consistency-only — skip Step 2).
|
|
110
|
+
|
|
111
|
+
**Pre-Audit Baseline.** Externalize declared counts, dependencies, decisions, artifacts (CM-24B). Build a complete registry of every element that must be verified (scoped to `--focus` dimensions when not `all`):
|
|
112
|
+
|
|
113
|
+
- Total phase count and file list
|
|
114
|
+
- Total task count per phase
|
|
115
|
+
- Total decision count and decision IDs
|
|
116
|
+
- All dependency edges (Phase X depends on Phase Y)
|
|
117
|
+
- All named outputs and their declared consumers
|
|
118
|
+
- All named inputs and their declared sources
|
|
119
|
+
- All naming conventions declared in the preamble
|
|
120
|
+
- All interface contracts between phases
|
|
121
|
+
- All verification assertions
|
|
122
|
+
|
|
123
|
+
This registry is the verification checklist. Every in-scope item is individually checked off during the applicable audit steps. Any in-scope item not checked off by Step 6 is an automatic finding.
|
|
124
|
+
|
|
125
|
+
### Step 2: Prose Fidelity Audit (CM-11A)
|
|
126
|
+
|
|
127
|
+
> Skip if `--focus` excludes `prose-fidelity` / `completeness` / `all`. Skip at EXPLORING seriousness. **Focus-seriousness conflict check:** after resolving `--focus` dimensions, if the current seriousness level would skip ALL focused dimensions (e.g., `--focus prose-fidelity` at EXPLORING), invoke the structured-inquiry channel: question `At the current seriousness level, the focused dimensions are skipped by default; how should the review proceed?`; header `Scope conflict`; options:
|
|
128
|
+
> - `Raise seriousness (Recommended)`:
|
|
129
|
+
> rationale: Temporarily escalates the seriousness tier for this review so the focused dimensions run; the original tier restores after the review completes.
|
|
130
|
+
> recommendation: recommended — cites class 5 rule citation: the seriousness-scaling discipline (Seriousness-Scaled Governance — escalating to satisfy a focused-dimension audit preserves the audit's evidence requirement) and class 6 observed-state: the operator explicitly named the focused dimensions, indicating they want those dimensions audited.
|
|
131
|
+
> default-pointer: Raise seriousness — safe because the escalation is scoped to this review only and produces the audit evidence the operator requested.
|
|
132
|
+
> - `Broaden focus`:
|
|
133
|
+
> rationale: Expands `--focus` to include dimensions available at the current tier; the originally-named dimensions are dropped from the audited set.
|
|
134
|
+
> recommendation: acceptable
|
|
135
|
+
> default-pointer: Raise seriousness — broadening focus drops the operator's named dimensions from coverage; raising seriousness preserves coverage of the named dimensions.
|
|
136
|
+
> - `Abort`:
|
|
137
|
+
> rationale: Halts the review; the next invocation can resume with adjusted parameters.
|
|
138
|
+
> recommendation: acceptable
|
|
139
|
+
> default-pointer: Raise seriousness — aborting forces a re-bootstrap; raising seriousness completes the review in the same session.
|
|
140
|
+
> `multiSelect: false`. At PERSONAL_USE: spot-check mode — select 5 representative requirements spanning different functional areas, trace forward only (Step 2.1), produce a scorecard on the sample. At SHARED+: full exhaustive audit as specified below.
|
|
141
|
+
|
|
142
|
+
Deploy an Audit Team (CM-25A) — parallel per-phase traceability. Each agent returns traceability findings with evidence citations (CM-25C).
|
|
143
|
+
|
|
144
|
+
**2.1 — Forward (Prose→Plan).** Extract EVERY requirement from the original prose — not a sample, not the obvious ones, ALL of them. Assign sequential IDs (R1, R2, R3...). Trace each to a specific phase and specific task. Classify each mapping:
|
|
145
|
+
|
|
146
|
+
- **STRONG:** the requirement is fully and faithfully represented in a specific task with matching acceptance criteria.
|
|
147
|
+
- **WEAK:** partially represented — some aspect is covered but nuance, scope, or specificity is lost.
|
|
148
|
+
- **ABSENT:** no corresponding task anywhere in the plan. A Critical finding.
|
|
149
|
+
- **REINTERPRETED:** present but materially altered in meaning. Quote both the original prose and the plan's rendering side by side. Requires user confirmation.
|
|
150
|
+
|
|
151
|
+
**2.2 — Reverse (Plan→Prose).** For EVERY task in EVERY phase, trace back to the prose requirement it implements. Classify:
|
|
152
|
+
|
|
153
|
+
- **JUSTIFIED:** the task directly implements a prose requirement.
|
|
154
|
+
- **UNJUSTIFIED:** the task has no prose basis — it may be a valid domain-standard addition, but it must be flagged and justified. (At PUBLIC_LAUNCH: mandatory for all tasks with full reverse traceability and justification. At SHARED: reverse traceability executed — flag unjustified tasks, accept valid domain-standard additions with brief rationale.)
|
|
155
|
+
|
|
156
|
+
**2.3 — Nuance Preservation.** Examine specifically:
|
|
157
|
+
|
|
158
|
+
- Subtle intentions — does the plan capture what the user *meant*, not just what they *said*?
|
|
159
|
+
- Thresholds and quantities — are specific numbers preserved verbatim?
|
|
160
|
+
- Examples — are user-provided examples expanded into patterns, not flattened?
|
|
161
|
+
- Negatives — are "do NOT" and exclusion requirements captured as explicit OUT-of-scope items?
|
|
162
|
+
- Hedging and uncertainty — where the user expressed uncertainty, does the plan reflect that as a decision point instead of silently resolving it?
|
|
163
|
+
|
|
164
|
+
**2.4 — Scope Drift.** Identify every plan item with no prose basis. For each: either justify it as a necessary technical implementation detail or flag it as scope drift. Identify every reinterpretation — quote both the original prose and the plan's rendering side by side.
|
|
165
|
+
|
|
166
|
+
**2.5 — Emphasis Alignment.** Is plan emphasis proportional to prose emphasis? If the user spent 40% of their prose on feature X, does the plan allocate proportional attention? Disproportionate emphasis (inflated or deflated) is a finding.
|
|
167
|
+
|
|
168
|
+
**2.6 — Scorecard.** Grade per CM-11A scoring criteria:
|
|
169
|
+
|
|
170
|
+
- **PASS:** ≥90% STRONG, 0 ABSENT.
|
|
171
|
+
- **CONDITIONAL:** ≥75% STRONG, ≤2 ABSENT.
|
|
172
|
+
- **FAIL:** below CONDITIONAL thresholds.
|
|
173
|
+
|
|
174
|
+
Record the full traceability matrix and scorecard.
|
|
175
|
+
|
|
176
|
+
### Step 2.7: Pre-Flight Canonical-Audit Dimensions
|
|
177
|
+
|
|
178
|
+
> Mandatory pre-flight sweep firing before the Step 3 forensic audit. These 9 dimensions are not optional; they apply at every seriousness ≥ PERSONAL_USE and on every `--focus` value (including `all`). Each dimension specifies (i) detection logic, (ii) finding classification (severity floor + category), (iii) routing to the receiving scorecard. Findings emitted here are appended to the Step 6.1 Findings Registry and re-checked at Step 11 Final Verification.
|
|
179
|
+
>
|
|
180
|
+
> Deploy an Audit Team (CM-25A) — one agent per dimension where parallel coverage is feasible (a–i are non-overlapping by detection target). Each agent returns pass/fail + per-finding evidence (CM-25C; max 200 tokens per agent; required fields: `dimension`, `findings[]` with `evidence`, `severity`, `category`).
|
|
181
|
+
|
|
182
|
+
**2.7.a — Foundational Naming-Drift Detection.**
|
|
183
|
+
|
|
184
|
+
- **Detection logic.** Sweep every host artifact (source files, configs, docs, plan-suite files) for naming-token drift against the ratified per-language conventions: kebab-case (filenames, folders, slugs), snake_case (Python identifiers, env vars where ratified), PascalCase (Python classes, TypeScript types, Rust types), camelCase (TypeScript identifiers, Go exported), UPPER_SNAKE_CASE (constants). For each token, compare the observed form against the ratified convention for its scope; flag every mixed-convention occurrence (e.g., `UserService` alongside `user_service` for the same entity; `kebab-case-file.py` in a snake_case-Python corpus).
|
|
185
|
+
- **Classification.** **MEDIUM** severity floor; category **Internal Consistency**. Promote to **HIGH** when the drift crosses a public-API surface (exported identifier, CLI flag, config key).
|
|
186
|
+
- **Routing.** Findings route to the **Internal Consistency Scorecard** (Step 3.10) alongside Step 3.3 Naming Coherence outcomes; pre-flight findings are pre-seeded so Step 3.3 inherits them without re-discovery.
|
|
187
|
+
|
|
188
|
+
**2.7.b — State-Freshness Sweep.**
|
|
189
|
+
|
|
190
|
+
- **Detection logic.** Sweep `PROGRESS.md` / `PLAN-NOTES.md` / every `phases/**/PHASE.md` / every `phases/**/REPORT.md` for stale references: (i) references to removed APIs or renamed identifiers (cross-check against the current source tree), (ii) dead URLs (links to repositories, vendor docs, RFCs that 404 or redirect), (iii) files cited at paths that no longer exist (moved or removed), (iv) decision references (D-N) pointing at decisions no longer in the Resolved Decisions table.
|
|
191
|
+
- **Classification.** **MEDIUM** severity floor; category **Internal Consistency**. Promote to **HIGH** when the stale reference is load-bearing for downstream `/plan-execute` (a critical-files-manifest entry, a Resumption Contract pointer).
|
|
192
|
+
- **Routing.** Findings route to the **Internal Consistency Scorecard** (Step 3.10); cross-fed into Step 3.6 Progress/State Consistency for synthesis.
|
|
193
|
+
|
|
194
|
+
**2.7.c — Scope-Evolution / Directive-Codification Propagation Audit.**
|
|
195
|
+
|
|
196
|
+
- **Detection logic.** Enumerate every operator-ratified directive (every decision in the suite's decision registry, every locked-decision-class citation per `rules/interactive-questions-canonical-shapes.md` §3.2.1). For each directive, verify it propagates to its declared target phase(s) and sub-phase(s) tasks — the directive's mandate is materially reflected in task descriptions, acceptance criteria, or scope boundaries of the target phases. A directive ratified but absent from its target phase is a silent omission.
|
|
197
|
+
- **Classification.** **HIGH** severity floor; category **Prose Fidelity** (the directive IS the prose contract per the suite's spec-relative anchoring). Promote to **Critical** when the omission affects an irreversible decision class (per `rules/operational-mandates.md` §CM-9).
|
|
198
|
+
- **Routing.** Findings route to the **Prose Fidelity Scorecard** (Step 2.6) — pre-flight findings raise the Step 2.6 grade ceiling (a directive omission caps Prose Fidelity at CONDITIONAL until resolved).
|
|
199
|
+
|
|
200
|
+
**2.7.d — Tooling-Reconsideration Audit.**
|
|
201
|
+
|
|
202
|
+
- **Detection logic.** Inspect the host's ratified toolchain — formatter (e.g., `ruff format` / `black` / `prettier`), linter (e.g., `ruff check` / `eslint` / `clippy`), type-checker (e.g., `mypy` / `pyright` / `tsc`), test framework (e.g., `pytest` / `vitest` / `cargo test`), docs generator (e.g., Fumadocs / Docusaurus / `mdBook`), CI provider (e.g., GitHub Actions / GitLab CI / CircleCI). For each, compare the host's ratified version (per `pyproject.toml` / `package.json` / `Cargo.toml` and sibling configs) against the tool's current SOTA release (vendor latest stable). Flag stale ratifications (e.g., `mypy` pinned at a version superseded by a newer release with material correctness improvements; `black` where the host's idiom drifted toward `ruff format`).
|
|
203
|
+
- **Classification.** **LOW** to **MEDIUM** advisory; category **Tooling-axis Quality** (per `rules/cognitive-identity.md` §1 seven-axes taxonomy — Tooling axis). Promote to **HIGH** only when the staleness blocks a CI-green gate (e.g., a deprecated tool version produces breaking changes against newer Python).
|
|
204
|
+
- **Routing.** Findings route to the **Quality Scorecard** (Step 4 — specifically the Standards sub-check 4.3 and the Tooling-axis surface).
|
|
205
|
+
|
|
206
|
+
**2.7.e — Harness-Cohort Audit.**
|
|
207
|
+
|
|
208
|
+
- **Detection logic.** At every phase or sub-phase that touches multi-harness work (any phase whose scope names ≥ 2 harness adapters, or whose outputs land under `src/apothem/harnesses/*`), verify the 17-harness adapter cohort is honored: `antigravity`, `claude_code`, `codebuddy`, `codex`, `cursor`, `gemini_cli`, `github_copilot`, `hermes`, `kimi_code`, `kiro`, `open_claw`, `opencode`, `qwen_code`, `trae`, `windsurf`, `zed`, `glm`. Any missing harness in a multi-harness-touching phase is a silent cohort drop.
|
|
209
|
+
- **Classification.** **HIGH** severity floor; category **Completeness**. Promote to **Critical** when the missing harness is operator-installed in the active project (verified via the host's harness registry).
|
|
210
|
+
- **Routing.** Findings route to the **Completeness Scorecard** (Step 4.1).
|
|
211
|
+
|
|
212
|
+
**2.7.f — i18n-Cohort Audit.**
|
|
213
|
+
|
|
214
|
+
- **Detection logic.** At every phase or sub-phase that touches i18n work (any phase whose scope names ≥ 2 locales, or whose outputs land under `docs/i18n/`, `locales/`, or sibling i18n surfaces), verify the 12-locale Modern dev cohort is honored: EN, ZH-CN, ES, PT-BR, FR, DE, JA, KO, RU, ID, AR, HI. Any missing locale in an i18n-touching phase is a silent cohort drop.
|
|
215
|
+
- **Classification.** **HIGH** severity floor; category **Completeness**. Promote to **Critical** when the missing locale is mandated by a published rollout commitment.
|
|
216
|
+
- **Routing.** Findings route to the **Completeness Scorecard** (Step 4.1).
|
|
217
|
+
|
|
218
|
+
**2.7.g — Widget-Class Audit.**
|
|
219
|
+
|
|
220
|
+
- **Detection logic.** At every phase or sub-phase that touches README widgets (any phase whose scope names README header / badge / activity-widget surfaces, or whose outputs land at the host's README), verify the 4 widget classes are honored: (i) Star History, (ii) contrib.rocks contributors graph, (iii) Repobeats activity pulse, (iv) Sponsors / Discord / Showcase badges. Any missing class in a widget-touching phase is a silent omission.
|
|
221
|
+
- **Classification.** **MEDIUM** severity floor; category **Completeness**. Promote to **HIGH** when the omission lands on a release-tier README that ships to a public registry.
|
|
222
|
+
- **Routing.** Findings route to the **Completeness Scorecard** (Step 4.1).
|
|
223
|
+
|
|
224
|
+
**2.7.h — Adoption-Maximization Audit.**
|
|
225
|
+
|
|
226
|
+
- **Detection logic.** At the adoption-surfaces phase, verify the 4 N2 adoption surfaces are honored: (i) Comparison page, (ii) Showcase / Users page, (iii) Discord / Slack community page, (iv) Blog / RSS feed surface. Any missing surface in that cohort is a silent omission.
|
|
227
|
+
- **Classification.** **MEDIUM** severity floor; category **Completeness**. Promote to **HIGH** when the omission affects a launch-blocker surface declared in the suite's release-readiness checklist.
|
|
228
|
+
- **Routing.** Findings route to the **Completeness Scorecard** (Step 4.1).
|
|
229
|
+
|
|
230
|
+
**2.7.i — Standard-Conformance Audit.**
|
|
231
|
+
|
|
232
|
+
- **Detection logic.** Pre-flight check: every adapter, config, framework, or tool the plan uses MUST adhere to its vendor-documented LATEST convention, with a **commit-SHA-pinned citation** and a **per-harness STANDARD CONVENTION PIN** where the artifact is a harness adapter. For each adapter / config / framework / tool reference, verify: (i) the citation names the vendor's canonical convention document with a commit-SHA-pinned URL (not a branch-pointed URL), (ii) the per-harness pin block carries the harness's ratified convention version, (iii) the cited version matches the vendor's current LATEST (no stale conformance). Unpinned-or-stale conformance is a silent fabrication risk per `rules/authority-inquiry.md` (M5 authority half).
|
|
233
|
+
- **Classification.** **HIGH** severity floor; category **Authority (M5)**. Promote to **Critical** when the unpinned reference governs a security-relevant adapter surface (auth, secrets, network egress).
|
|
234
|
+
- **Routing.** Findings route to the **Standards Scorecard** (Step 4.3) AND the **Risk Assessment** (Step 5.2 Strategic Risks — unpinned conformance is a long-tail supply-chain risk).
|
|
235
|
+
|
|
236
|
+
**Pre-flight emission contract.** Each dimension above emits at minimum a per-dimension verdict line (`2.7.{letter}: PASS | CONDITIONAL | FAIL — <count> findings`) recorded inline in PLAN-NOTES.md `## Pre-Flight Canonical-Audit`. Findings cross-link to the receiving scorecard per the Routing field above. The pre-flight verdicts feed Step 3 (Internal Consistency), Step 4 (Quality/Completeness/Standards), and Step 5 (Risk) without re-discovery.
|
|
237
|
+
|
|
238
|
+
### Step 3: Internal Consistency Audit (CM-11B)
|
|
239
|
+
|
|
240
|
+
> Skip if `--focus` excludes `consistency` / `all`. Skip at EXPLORING seriousness. At PERSONAL_USE: dependency chain only — run sub-check 3.2 (Dependency Chain Integrity) and 3.9 (Plan-Internal Isolation Readiness); skip 3.1, 3.3–3.8. Produce a scorecard on the audited dimensions. At SHARED: all dimensions (3.1–3.9). At PUBLIC_LAUNCH: all dimensions with pairwise cross-validation — for each pair of phase files, verify mutual consistency of shared references, inputs/outputs, and naming.
|
|
241
|
+
|
|
242
|
+
Deploy an Audit Team (CM-25A) — parallel per-dimension. Every check examines EVERY instance, not a sample. Each agent returns pass/fail + evidence (CM-25C).
|
|
243
|
+
|
|
244
|
+
**3.1 — Decision Consistency.** Extract every decision reference (D1, D2, ...) from every file. Verify: (a) each decision ID exists in `PLAN-NOTES.md` or `MASTER-PLAN.md` Resolved Decisions table, (b) every phase file referencing a decision uses it consistently with the recorded resolution, (c) no two decisions contradict each other, (d) no phase file implements logic that contradicts a recorded decision.
|
|
245
|
+
|
|
246
|
+
**3.2 — Dependency Chain Integrity.** For every dependency edge in the dependency graph: (a) verify the prerequisite phase actually produces the declared output, (b) verify the dependent phase actually lists the required input, (c) verify there are no circular dependencies, (d) verify all declared outputs have at least one consumer (orphan outputs are a finding), (e) verify all declared inputs have a producing source (phantom inputs are a Critical finding).
|
|
247
|
+
|
|
248
|
+
**3.3 — Naming Coherence.** Extract every proper noun, variable name, file path, module name, class name, function name, and technical term used across ALL files. For each term: verify it is spelled identically everywhere it appears. A single inconsistency (e.g., `UserService` in one file vs. `userService` in another) is a finding. Verify all naming follows the conventions declared in the preamble.
|
|
249
|
+
|
|
250
|
+
**3.4 — Interface/Contract Consistency.** For every input/output pair across phase boundaries: verify the output's specification (type, format, content) matches the input's expectation. If Phase 3 outputs `config.yaml` and Phase 4 consumes `config.json`, that is a Critical finding.
|
|
251
|
+
|
|
252
|
+
**3.5 — Preamble-Phase Alignment.** For every mandate, standard, convention, and instruction in `PREAMBLE.md`: verify every phase file complies. If the preamble mandates conventional commits and a phase file says "commit with descriptive messages", that is a finding.
|
|
253
|
+
|
|
254
|
+
**3.6 — Progress/State Consistency.** Verify `PROGRESS.md` accurately reflects the current state — phase counts match actual phase files, dependency references match the graph, statuses are internally consistent.
|
|
255
|
+
|
|
256
|
+
**3.7 — Master Plan Index Integrity.** Verify the `MASTER-PLAN.md` Phase Index: (a) every listed phase folder actually exists in `phases/`, (b) every existing phase folder is listed, (c) scope descriptions match the phase files' Scope sections, (d) dependency declarations match the dependency graph, (e) parallelization opportunities are correctly identified (no parallel phases that actually carry sequential dependencies).
|
|
257
|
+
|
|
258
|
+
**3.8 — Cross-Phase Semantic Continuity.** Read the plan as a narrative from Phase 01 through Phase NN. Verify the logical flow: does Phase N's output set up Phase N+1 correctly? Are there semantic gaps where a phase assumes context or artifacts no prior phase produces? Is the overall arc coherent?
|
|
259
|
+
|
|
260
|
+
**3.9 — Plan-Internal Isolation Readiness (CM-7).** Verify that phase-file task descriptions, acceptance criteria, and scope descriptions are written in natural domain language that will NOT leak plan-internal terminology into execution artifacts. Specifically: (a) task descriptions describe WHAT to build, not plan structure ("implement the D2 decision" → "implement OAuth2 with PKCE"); (b) acceptance criteria are domain-testable, not plan-process-testable ("Phase 03 outputs verified" → "authentication endpoint returns valid JWT"); (c) commit guidance uses domain language, not phase/decision references; (d) scope boundaries reference functional areas, not plan-internal identifiers. Any content that would encourage CM-7 forbidden terms (CLAUDE.md CM-7) to appear in protected artifacts during execution is a finding.
|
|
261
|
+
|
|
262
|
+
**3.10 — Scorecard.** Grade per CM-11B scoring criteria:
|
|
263
|
+
|
|
264
|
+
- **PASS:** 0 findings across all audited dimensions (3.1–3.9).
|
|
265
|
+
- **CONDITIONAL:** 0 Critical findings and ≤3 Important findings.
|
|
266
|
+
- **FAIL:** any Critical finding, or >3 Important findings.
|
|
267
|
+
|
|
268
|
+
Record the full consistency audit results and scorecard.
|
|
269
|
+
|
|
270
|
+
### Step 4: Gap and Quality Analysis
|
|
271
|
+
|
|
272
|
+
> Skip if `--focus` excludes `quality` / `standards` / `domain` / `architecture` / `completeness` / `all`.
|
|
273
|
+
|
|
274
|
+
Deploy an Audit Team (CM-25A) — parallel per-dimension analysis. Prose-anchored: every gap classified as prose-relative or domain-standard-relative.
|
|
275
|
+
|
|
276
|
+
**4.1 — Completeness.** Are there functional areas implied by the project scope that no phase addresses? Edge cases that should be handled but are not mentioned? Integration points assumed but not explicitly tasked? Deployment, monitoring, or operational concerns that are missing?
|
|
277
|
+
|
|
278
|
+
**4.2 — Quality (TM-13 thresholds and success metrics).** For every phase: (a) does it have a clear, measurable success metric? (b) are acceptance criteria specific and testable? (c) do task counts stay within the ≤10 task, ≤5 file, ≤2000 token thresholds? (d) are mixed concerns properly separated? Any phase exceeding thresholds without a sub-phase split is a finding.
|
|
279
|
+
|
|
280
|
+
**4.3 — Standards.** Does the plan specify all necessary technical standards — linting, formatting, type checking, testing framework, code-coverage targets, security scanning, documentation format? Are these consistent with the preamble's mandates?
|
|
281
|
+
|
|
282
|
+
**4.4 — Domain Bundles.** Based on the declared domain, are domain-specific requirements addressed? (Web app: accessibility, CORS, CSP, rate limiting, auth. ML: reproducibility, data versioning, experiment tracking. API: versioning, pagination, error codes, rate limiting.)
|
|
283
|
+
|
|
284
|
+
**4.5 — Architecture (roadmap, milestones, layer compliance).** Is the week-by-week roadmap realistic? Are milestones clear and measurable? Is the dependency graph optimized for parallelization? Is Phase 1 delivering the fastest path to a first tangible result? **Layer boundary verification (CM-27):** if the project warrants clean architecture (3+ modules, SHARED+ seriousness, or the preamble declares layer structure), verify: (a) phases producing domain logic do not introduce infrastructure imports, (b) the dependency direction between planned modules respects the inward-only rule (Domain ← Application ← Infrastructure/Presentation), (c) testing strategy aligns with layer boundaries (domain = pure unit, application = mocked interfaces, infrastructure = integration), (d) no phase task bundles cross-cutting concerns that should be separated across layers.
|
|
285
|
+
|
|
286
|
+
**4.6 — Creative Quality (CM-21).** A mandatory quality gate, not a decorative assessment.
|
|
287
|
+
|
|
288
|
+
- **Language-standards compliance:** scan EVERY file for forbidden phrases (cognitive identity rule, Section 4). Any occurrence is a finding. Scan for required qualities (specificity, surprise, internal logic, generativity, tension) in substantive sections — architectural decisions, scope descriptions, strategic analysis.
|
|
289
|
+
- **Originality assessment:** does the plan contain at least one structurally novel element per substantive architectural decision? Are key concepts given named frameworks? Does the overall design demonstrate conceptual elegance or merely functional adequacy?
|
|
290
|
+
- **Filter 1 (Obvious Purge) compliance:** is there evidence that obvious / default solutions were identified and rejected in favor of non-obvious alternatives? If every architectural choice is the "standard" approach, this gate fails.
|
|
291
|
+
- **Filter 2 (Domain Exile) compliance:** is there evidence the problem was reframed through at least one foreign discipline?
|
|
292
|
+
- **Filter 3 (Inversion Press) compliance:** does at least one inverted assumption survive into the plan's design decisions?
|
|
293
|
+
- **Filter 4 (Combinatorial Explosion) compliance:** is there at least one cross-domain synthesis in the plan's architectural decisions?
|
|
294
|
+
- **Filter 5 (Aesthetic Demand):** would this plan make a staff engineer stop and think *"I have never approached it that way"*? Apply this as a final quality bar.
|
|
295
|
+
- **Seriousness scaling:** per cognitive identity rule, Section 2.
|
|
296
|
+
|
|
297
|
+
### Step 5: Risk Assessment
|
|
298
|
+
|
|
299
|
+
> Skip if `--focus` excludes `risk` / `all`.
|
|
300
|
+
|
|
301
|
+
Deploy an Audit Team (CM-25A) — risk assessment with cross-dimension inputs from Steps 2–4 (using only findings from steps that actually executed).
|
|
302
|
+
|
|
303
|
+
**5.1 — Consistency-Derived Risks.** Phantom references → dependency risk. Naming inconsistencies → integration risk. Interface mismatches → build-failure risk. Decision contradictions → implementation-confusion risk.
|
|
304
|
+
|
|
305
|
+
**5.2 — Strategic Risks.** Feasibility of the overall plan given the declared seriousness and scope. Dependency fragility — which single phase failure would cascade most widely? Scope-creep indicators. Technology risk. Skill / knowledge gaps.
|
|
306
|
+
|
|
307
|
+
**5.3 — Top 3 Failure Risks.** Identify the three most likely failure modes with specific prevention strategies for each. These are concrete, not generic (not "insufficient testing" but "Phase 04's database migration has no rollback strategy if the schema change corrupts existing data").
|
|
308
|
+
|
|
309
|
+
### Step 6: Synthesis
|
|
310
|
+
|
|
311
|
+
**6.1 — Findings Registry.** Compile EVERY finding from all executed steps into a single registry. If `--focus` narrowed scope, note which dimensions were audited and which were excluded. Each finding includes:
|
|
312
|
+
|
|
313
|
+
- **ID:** sequential (F1, F2, ...)
|
|
314
|
+
- **Category:** Prose Fidelity / Consistency / Quality / Risk / Creative
|
|
315
|
+
- **Severity:** Critical (blocks execution, structural failure) / Important (degrades quality, creates risk) / Advisory (improvement opportunity, minor inconsistency)
|
|
316
|
+
- **Evidence:** exact quote, file location, cross-reference target
|
|
317
|
+
- **Impact:** what goes wrong if this finding is not addressed
|
|
318
|
+
- **Location:** specific file(s) and section(s) affected
|
|
319
|
+
- **Fix Action:** specific proposed remediation, not a vague "review" or "address"
|
|
320
|
+
- **Remediation Class:** mechanical / judgment / defer / waive
|
|
321
|
+
- **Status:** open / resolved / operator-waived / deferred-to-maintenance
|
|
322
|
+
|
|
323
|
+
**6.2 — Gate Determination.** Gate only on audited dimensions. If Step 3 ran: Internal Consistency ≥ CONDITIONAL required. If Step 2 ran: Prose Fidelity ≥ CONDITIONAL required. If either executed scorecard is FAIL: at PUBLIC_LAUNCH → execution is hard-blocked, no override; at SHARED → execution is blocked until addressed, but Product Owner override is permitted (log rationale in PLAN-NOTES.md); at PERSONAL_USE → advisory only, warn the user but do not block. If `--focus` excluded a dimension, that dimension's gate is deferred — neither passed nor failed, and must be audited in a subsequent full review before execution at SHARED+.
|
|
324
|
+
|
|
325
|
+
**6.2.1 — Strict Zero-Open-Finding Terminal Gate.** Independent of per-scorecard CONDITIONAL tolerance, the terminal handoff verdict to `/plan-execute` is PASS only when the post-remediation Findings Registry has zero `open` findings. Every finding is `resolved`, `operator-waived` with logged rationale in PLAN-NOTES.md, or `deferred-to-maintenance` with an explicit out-of-scope rationale and source anchor. A CONDITIONAL scorecard that still carries open findings is not passing; it loops through remediation or exits BLOCKED. Write the terminal verdict and open-finding count to the Handoff Manifest and PROGRESS.md Review Summary.
|
|
326
|
+
|
|
327
|
+
**6.3 — Summary.** Present findings grouped by category and severity. State the single biggest structural issue in the plan — the one finding that, if fixed, would improve the plan more than any other.
|
|
328
|
+
|
|
329
|
+
**6.4 — Clean Bill.** If ZERO findings across all executed steps: (a) in normal runs, write scorecard grades (all PASS) to PLAN-NOTES.md `## Review Scorecards` and PROGRESS.md Review Summary, then skip Steps 7–10, proceed directly to Step 11C (skipping 11A/11B since no revisions were applied), then continue to Step 12; (b) in `--dry-run`, do not write files and report the would-write targets only, then proceed directly to Step 6.6 and STOP. A clean bill requires that EVERY in-scope element in the Pre-Audit Baseline registry (Step 1) has been individually verified and marked clean. If any in-scope element was not examined, the review is incomplete — not clean. If `--focus` narrowed scope, the clean bill applies only to audited dimensions — state explicitly which dimensions were not audited and include a `Review Scope:` field listing audited/unaudited dimensions.
|
|
330
|
+
|
|
331
|
+
**6.5 — User Rejects All Revisions.** If findings exist but the user rejects all proposed revisions → skip Steps 10–11A/11B, proceed to Step 11C with pre-revision scores as final, then continue to Step 12. Log the user's rationale in PLAN-NOTES.md.
|
|
332
|
+
|
|
333
|
+
**6.6 — Dry-Run Exit.** If `--dry-run`: present scorecards, findings registry, risk assessment, and gate determination. **Do NOT write any files, create or evolve artifacts, or proceed to Q&A or revisions. STOP.**
|
|
334
|
+
|
|
335
|
+
### Step 7: User Clarification Batches
|
|
336
|
+
|
|
337
|
+
Present each finding with:
|
|
338
|
+
|
|
339
|
+
- The evidence (exact quote and location)
|
|
340
|
+
- The impact (what goes wrong if unaddressed)
|
|
341
|
+
- The recommended fix (specific, actionable)
|
|
342
|
+
- The remediation class (mechanical / judgment / defer / waive)
|
|
343
|
+
- Alternative fixes if applicable (with trade-off analysis)
|
|
344
|
+
|
|
345
|
+
Batch thematically — group related findings so the user can see patterns and make coherent decisions. Collect the user's disposition on each finding (accept fix / reject / alternative / defer) via the structured-inquiry channel — one invocation per thematic batch, up to 4 findings per invocation per the tool schema; the implicit Other option accepts free-text rationale when the user declines a canned disposition. Document ALL responses in PLAN-NOTES.md immediately.
|
|
346
|
+
|
|
347
|
+
### Step 8: Propose Revisions
|
|
348
|
+
|
|
349
|
+
Document all proposed revisions in PLAN-NOTES.md. Organize by severity (Critical first, then Important, then Advisory). For each revision:
|
|
350
|
+
|
|
351
|
+
- State what changes and where
|
|
352
|
+
- State why it fixes the finding
|
|
353
|
+
- State the blast radius (what other files / elements the change affects)
|
|
354
|
+
- State which finding status will change after application
|
|
355
|
+
|
|
356
|
+
Identify the single most impactful revision — the one change that fixes the most findings or addresses the deepest structural issue. Apply the **Obvious Purge** (Filter 1): the obvious revision addresses the symptom; find the one that addresses the root structural issue.
|
|
357
|
+
|
|
358
|
+
### Step 9: STOP — Wait for Approval
|
|
359
|
+
|
|
360
|
+
**STOP. Never apply changes without user approval.** Present:
|
|
361
|
+
|
|
362
|
+
- Total number of proposed revisions
|
|
363
|
+
- Breakdown by severity
|
|
364
|
+
- The single most impactful revision highlighted
|
|
365
|
+
- Clear instruction that no changes will be made until the user approves
|
|
366
|
+
|
|
367
|
+
Invoke the structured-inquiry channel: question `Which proposed revisions should apply to the plan suite?`; header `Revisions`; options:
|
|
368
|
+
- `Approve all (Recommended)`:
|
|
369
|
+
rationale: Applies every proposed revision in Step 10; the revision-impact map and post-revision verification cover the entire revision set as one cohesive cohort.
|
|
370
|
+
recommendation: recommended — cites class 5 rule citation: `commands/plan-review.md` Step 8 (Propose Revisions — every revision is documented with severity, rationale, and blast radius, satisfying the prerequisite for cohesive application) and class 6 observed-state: Step 6's Findings Registry surfaces every finding with evidence, indicating the proposed revision set is the operator-reviewable cohesive cohort.
|
|
371
|
+
default-pointer: Approve all — safe because Step 11 Final Verification re-scores every audited dimension, catching any regression introduced by the revisions.
|
|
372
|
+
- `Approve a subset`:
|
|
373
|
+
rationale: User specifies which revisions to apply and which to reject via Other-text or follow-up; only approved revisions apply in Step 10, rejected revisions are logged with rationale in PLAN-NOTES.md, and Step 11 re-runs on the partial revision set.
|
|
374
|
+
recommendation: acceptable
|
|
375
|
+
default-pointer: Approve all — partial approval requires the operator to map per-revision dispositions, while the cohesive revision set is the operator-reviewable cohort.
|
|
376
|
+
- `Reject all revisions`:
|
|
377
|
+
rationale: Proceeds to the Step 6.5 path; the existing plan suite is preserved at its current state with the operator's rationale logged in PLAN-NOTES.md.
|
|
378
|
+
recommendation: discouraged — cites class 5 rule citation: `rules/operational-mandates.md` CM-1 (Critical Evaluation — push back when suboptimal) and class 6 observed-state: Step 6 surfaced findings with severity classifications, indicating substantive defects exist that rejection leaves unresolved.
|
|
379
|
+
default-pointer: Approve all — rejecting all revisions leaves the surfaced findings unresolved, propagating risk into downstream execution; approval addresses the findings cohesively.
|
|
380
|
+
`multiSelect: false`.
|
|
381
|
+
|
|
382
|
+
### Step 10: Apply Revisions
|
|
383
|
+
|
|
384
|
+
Deploy an Implementation Team (CM-25A) for parallel non-overlapping revisions — each agent handles revisions in non-overlapping files (CM-25E).
|
|
385
|
+
|
|
386
|
+
**10.1** Pre-revision impact analysis → Revision Impact Map. For each revision, trace every file and element it affects. Identify revision pairs whose targets overlap or whose changes interact. If revisions have overlapping file targets, partition into conflict-free groups — execute each group as a parallel wave (non-overlapping files within each wave; waves execute sequentially). When several revisions target the same file(s), apply sequentially in severity order (Critical first) without deploying an Implementation Team.
|
|
387
|
+
|
|
388
|
+
**10.2** Apply with cross-reference tracking. Classify each applied revision as STRUCTURAL (adds/removes phases, changes the dependency graph, or alters architectural decisions) or REFINEMENT (modifies task scope, updates acceptance criteria, or fixes inconsistencies within existing phases). Bump the plan's semver: STRUCTURAL → MAJOR (vN.0.0), REFINEMENT → MINOR (vN.M.0), pure-typo or formatting fix → PATCH (vN.M.P). Append each applied revision to the Revision History table as `vX.Y.Z | YYYY-MM-DD | classification | summary`.
|
|
389
|
+
|
|
390
|
+
**10.3** Post-revision checklist: every proposed revision applied; every blast-radius impact checked; no new inconsistencies introduced by the revisions themselves. If a revision introduces a new inconsistency, that is a Critical finding requiring immediate re-revision before proceeding.
|
|
391
|
+
|
|
392
|
+
**10.4** If a STRUCTURAL revision (phases added/removed, dependency graph changed): update the PROGRESS.md phase tracker, counts, and dependency references to reflect the new plan structure.
|
|
393
|
+
|
|
394
|
+
**10.5** Findings status update: after each applied revision, update the Findings Registry row from `open` to `resolved` only when Step 11 re-checks the finding's exact evidence locus. Operator-waived and deferred-to-maintenance statuses require a rationale, source anchor, and downstream routing entry; they never silently count as resolved.
|
|
395
|
+
|
|
396
|
+
### Step 11: Final Verification
|
|
397
|
+
|
|
398
|
+
Deploy an Audit Team (CM-25A) for parallel re-scoring. This step re-applies the same rigorous, blind, exhaustive methodology from Steps 2–3 — not a cursory re-check. Re-check only dimensions that were audited (i.e., steps that executed per `--focus` scope).
|
|
399
|
+
|
|
400
|
+
**11A — Prose Fidelity Recheck.** If Step 2 executed: re-score the full traceability matrix on the revised plan. The post-revision score MUST be ≥ the pre-revision score. If post < pre (a revision degraded prose fidelity): identify the offending revision(s), revert them, re-score, and escalate to the user if still regressing.
|
|
401
|
+
|
|
402
|
+
**11B — Internal Consistency Recheck.** If Step 3 executed: re-score ALL consistency dimensions on the revised plan. The post-revision score MUST be ≥ the pre-revision score. If post < pre: same revert-and-escalate procedure. Pay particular attention to consistency dimensions the revisions touched — a revision that touches one consistency dimension also touches every dimension that cross-references it, and a fix in one dimension can introduce a new inconsistency in any of the cross-referencing dimensions.
|
|
403
|
+
|
|
404
|
+
**11B.1 — Update Stored Scorecards.** Write post-revision scorecard grades to PLAN-NOTES.md `## Review Scorecards` (overwriting pre-revision grades). Update PROGRESS.md Review Summary with post-revision grades so downstream commands (plan-execute, plan-status) read current scores. If `--focus` narrowed scope, include a `Review Scope:` field listing audited and unaudited dimensions — plan-execute uses this to detect partial coverage at SHARED+.
|
|
405
|
+
|
|
406
|
+
**11C — Collective Coherence.** Final coherence verification:
|
|
407
|
+
|
|
408
|
+
- Appendix checklist: verify all mandatory files exist and are properly cross-referenced.
|
|
409
|
+
- Verification assertions: run the key assertions from the Master Plan.
|
|
410
|
+
- Verify the Revision History row was appended with the correct classification (STRUCTURAL/REFINEMENT/PATCH per Step 10.2) and the plan version bumped accordingly.
|
|
411
|
+
- If revisions were applied: compare pre-revision and post-revision scorecards side by side (confirm post ≥ pre for each audited dimension).
|
|
412
|
+
- If no revisions (clean-bill path): confirm scorecards from executed audit steps meet gate thresholds and present as final scores.
|
|
413
|
+
- Findings Registry: verify zero `open` findings remain. If any finding remains open, return to Step 8 or exit BLOCKED; do not hand off to `/plan-execute`.
|
|
414
|
+
- **Final Completeness Assertion:** revisit the Pre-Audit Baseline registry from Step 1. Confirm every in-scope element has been individually verified. If any in-scope element remains unverified, the review is incomplete — examine it now. If `--focus` narrowed scope, state explicitly which dimensions were audited and which remain unaudited.
|
|
415
|
+
|
|
416
|
+
### Step 11.5: End-of-Command Synthesis (D6)
|
|
417
|
+
|
|
418
|
+
Just before review-report finalization at Step 12 handoff, fire ONE structured inquiry per D6 (Q-022) with the spec §7.4 form. The invocation MUST satisfy `rules/interactive-questions.md` §2 (canonical schema) + §3 (three-segment body) + §4.1 (closed recommendation taxonomy) + the H4/H6 invariants from `rules/interactive-questions-sweep-matchers.md` (every option carries all three body segments; the `(Recommended)` label postfix bidirectionally binds the body `recommendation: recommended` value):
|
|
419
|
+
|
|
420
|
+
- `question:` `Review complete. Are there any deferred findings or improvements to surface before finalization?`
|
|
421
|
+
- `header:` `End synthesis`
|
|
422
|
+
- `multiSelect:` `false`
|
|
423
|
+
- Option `All clear (Recommended)`:
|
|
424
|
+
- `rationale:` No deferred findings; review report is finalized and the augmented Handoff Manifest emits.
|
|
425
|
+
- `recommendation:` recommended — cites class 6 observed-state: Step 11 Final Verification confirmed post-revision PASS scorecards across every audited dimension.
|
|
426
|
+
- `default-pointer:` no-default: user decision required (review's final-finding ratification surface).
|
|
427
|
+
- Option `Surface findings`:
|
|
428
|
+
- `rationale:` Operator surfaces additional findings before finalization; agent extends the Findings Registry and re-runs partial verification on the new findings.
|
|
429
|
+
- `recommendation:` acceptable
|
|
430
|
+
- `default-pointer:` no-default: user decision required.
|
|
431
|
+
- Option `Defer findings`:
|
|
432
|
+
- `rationale:` Operator notes findings but defers; agent appends `[Deferral — out-of-scope: <description>; tracking: <PLAN-NOTES.md or follow-up issue>]` per `rules/disclosure-ledger.md`.
|
|
433
|
+
- `recommendation:` acceptable
|
|
434
|
+
- `default-pointer:` no-default: user decision required.
|
|
435
|
+
|
|
436
|
+
The selection routes the post-synthesis flow: `All clear` proceeds directly to Step 12 handoff and Manifest emission only when the Findings Registry has zero open findings; `Surface findings` extends the Findings Registry, re-runs the affected dimension's audit (Steps 2/3/4 as applicable), and re-runs Step 11 Final Verification on the augmented finding set; `Defer findings` appends the deferral marker to the disclosure ledger and proceeds to Step 12 only when the finding is explicitly out of scope for the source suite and routed via the augmented Manifest's `deferrals` field per `rules/disclosure-ledger.md`.
|
|
437
|
+
|
|
438
|
+
### Step 12: Create or Evolve Artifacts and Handoff
|
|
439
|
+
|
|
440
|
+
Per CLAUDE.md Section 7.6 (including CM-22 §4: ecosystem gap detection). SHARED+: mandatory evaluation; create / evolve when the detection trigger is met (CM-22 §2). PERSONAL_USE: on corrections. EXPLORING: optional.
|
|
441
|
+
|
|
442
|
+
**Pipeline Handoff (CM-20):** recommend `/plan-execute` Phase 01. Present scorecard grades as evidence of plan readiness.
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## Critical Rules
|
|
447
|
+
|
|
448
|
+
- **NEVER apply revisions** without user approval (Step 9).
|
|
449
|
+
- **NEVER skip Final Verification** (Step 11) after revisions.
|
|
450
|
+
- **NEVER proceed** without template v0.1.0+.
|
|
451
|
+
- **NEVER inherit trust** from prior generation — every element verified from scratch.
|
|
452
|
+
- **NEVER declare "clean bill"** without verifying every in-scope element in the Pre-Audit Baseline registry. If `--focus` narrowed scope, state which dimensions remain unaudited.
|
|
453
|
+
- **NEVER record vague findings** — every finding cites exact file, section, content, and cross-reference.
|
|
454
|
+
- **NEVER skip elements** within audited dimensions — unverified elements cannot be declared clean.
|
|
455
|
+
- **NEVER misrepresent a focused review as a full review** — if `--focus` narrowed scope, state it explicitly.
|
|
456
|
+
- **NEVER allow cognitive bias** from having generated the plan — actively seek disconfirmation.
|
|
457
|
+
- **Respect resolved decisions** — do NOT re-ask.
|
|
458
|
+
- **Base protocol:** Agent Teams (CM-25) with return contracts — deployment scales with seriousness per the agent-orchestration rule (Optional at EXPLORING, Encouraged at PERSONAL_USE, Required at SHARED+). Default token budgets per CM-25C: Research 500, Audit/Quality 200, Implementation 500. Error recovery (CM-18), 3-failure escalation. Session resilience (CM-24/CM-14). Always-on rules (CM-22–28) enforced at all steps.
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## Mandates
|
|
463
|
+
|
|
464
|
+
All template and config mandates are in effect (CM-13 and CM-16 not applicable — review produces no codebase commits and does not execute phases). Governance scales with seriousness.
|
|
465
|
+
|
|
466
|
+
| Mandate | Enforcement Point |
|
|
467
|
+
| ------- | ----------------- |
|
|
468
|
+
| CM-7 | Step 3.9: plan-internal isolation readiness |
|
|
469
|
+
| CM-11 | Steps 2–3: audit; Step 6: gate; Step 11: re-audit |
|
|
470
|
+
| CM-12 | All steps: lean context management |
|
|
471
|
+
| CM-14 | Session protocols on pressure/resume |
|
|
472
|
+
| CM-15 | Step 10: blast radius; Step 11C: coherence |
|
|
473
|
+
| CM-17 | Steps 1–5, 10–11: Agent Teams |
|
|
474
|
+
| CM-18 | Critical Rules: 3-failure escalation |
|
|
475
|
+
| CM-19 | After Steps 1, 2, 3, 10, 11 |
|
|
476
|
+
| CM-20 | Step 12: pipeline handoff |
|
|
477
|
+
| CM-21 | Step 4.6: creative quality assessment |
|
|
478
|
+
| CM-22 | Step 12: artifact evolution |
|
|
479
|
+
| CM-24 | Steps 1, 10, 11: context management, externalization |
|
|
480
|
+
| CM-27 | Step 4.5: architecture layer compliance |
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## Output
|
|
485
|
+
|
|
486
|
+
- Pre-Audit Baseline registry (element verification checklist, scoped to `--focus` dimensions)
|
|
487
|
+
- Traceability matrices (at SHARED+, if prose fidelity audited)
|
|
488
|
+
- Prose Fidelity Scorecard (pre-revision, if Step 2 executed) — stored in PLAN-NOTES.md `## Review Scorecards`
|
|
489
|
+
- Internal Consistency Scorecard (pre-revision, if Step 3 executed) — stored in PLAN-NOTES.md `## Review Scorecards`
|
|
490
|
+
- Findings registry with evidence (every finding: ID, category, severity, evidence, impact, location, fix action, remediation class, status)
|
|
491
|
+
- Revision Impact Maps (if revisions applied)
|
|
492
|
+
- Updated PLAN-NOTES.md
|
|
493
|
+
- Updated plan version + Revision History row (if revisions applied)
|
|
494
|
+
- Post-revision scorecards (if revisions applied, for each audited dimension)
|
|
495
|
+
- Final Completeness Assertion (confirmation that every in-scope element was individually verified; if `--focus` narrowed scope, an explicit statement of unaudited dimensions)
|
|
496
|
+
- Skills created or evolved (if applicable)
|
|
497
|
+
- If `--dry-run`: scorecards and findings registry only (no revisions)
|
|
498
|
+
- If `--focus` narrowed scope: explicit declaration of which dimensions were audited and which remain for a future full review
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
## Decision Tree
|
|
503
|
+
|
|
504
|
+
```mermaid
|
|
505
|
+
%%{ init: { "theme": "neutral" } }%%
|
|
506
|
+
%% verified: 2026-04-27 %%
|
|
507
|
+
%% provenance: commands/plan-review.md §Workflow %%
|
|
508
|
+
%% cross-reference: src/apothem/commands/ (slash-command cohort) %%
|
|
509
|
+
flowchart TD
|
|
510
|
+
Start[/plan-review invoked/] --> Suite{Suite files present?}
|
|
511
|
+
Suite -->|no| Recommend[STOP — recommend /plan-generate]
|
|
512
|
+
Suite -->|yes| Focus{--focus argument?}
|
|
513
|
+
Focus -->|yes| Narrow[Audit scoped dimensions only]
|
|
514
|
+
Focus -->|no| Full[Audit all dimensions]
|
|
515
|
+
Narrow --> Baseline[Pre-Audit Baseline registry]
|
|
516
|
+
Full --> Baseline
|
|
517
|
+
Baseline --> ProseAudit{Prose fidelity audited?}
|
|
518
|
+
ProseAudit -->|yes| ProseScore[Prose Fidelity Scorecard]
|
|
519
|
+
ProseAudit -->|no| Skip1[Skip prose-fidelity dimension]
|
|
520
|
+
ProseScore --> ConsistAudit{Internal consistency audited?}
|
|
521
|
+
Skip1 --> ConsistAudit
|
|
522
|
+
ConsistAudit -->|yes| ConsistScore[Internal Consistency Scorecard]
|
|
523
|
+
ConsistAudit -->|no| Skip2[Skip internal-consistency dimension]
|
|
524
|
+
ConsistScore --> Findings[Compile findings registry · severity-count verification]
|
|
525
|
+
Skip2 --> Findings
|
|
526
|
+
Findings --> DryRun{--dry-run?}
|
|
527
|
+
DryRun -->|yes| EmitOnly[Emit scorecards + findings · halt]
|
|
528
|
+
DryRun -->|no| AnyFindings{Findings present?}
|
|
529
|
+
AnyFindings -->|no| Done[Emit clean-bill report]
|
|
530
|
+
AnyFindings -->|yes| AskRevise[structured inquiry: revise · accept-as-is · abort]
|
|
531
|
+
AskRevise -->|revise| Apply[Apply revisions · update plan version]
|
|
532
|
+
AskRevise -->|accept| Done2[Emit findings without revision]
|
|
533
|
+
AskRevise -->|abort| Halt[STOP]
|
|
534
|
+
Apply --> Rescore[Re-run scorecards on revised plan]
|
|
535
|
+
Rescore --> Gate{Post-revision PASS?}
|
|
536
|
+
Gate -->|yes| Done3[Emit revision-impact map · halt]
|
|
537
|
+
Gate -->|no| AskFail[structured inquiry: re-revise · accept · abort]
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
The tree distinguishes scope-narrowing forks (`--focus` reduces dimensional
|
|
541
|
+
coverage), audit-mode branches (each dimension activates its own scorecard),
|
|
542
|
+
and revision-loop forks where operator decision drives whether findings flow
|
|
543
|
+
into applied revisions or stand as advisory output.
|
|
544
|
+
|
|
545
|
+
## Recommended Next Step
|
|
546
|
+
|
|
547
|
+
Invoke `/plan-design` when the suite is architecture-bearing; otherwise invoke `/plan-execute`. The canonical sequence routes `/plan-review → /plan-design → /plan-execute`, and an architecture-bearing suite MUST produce `_inputs/design.md` before execution, so `/plan-design` is the successor whenever the suite carries architectural decomposition. A non-architecture-bearing suite skips `/plan-design`, and `/plan-execute` consumes this command's scorecards directly — record the `/plan-design` skip rationale in PLAN-NOTES.md per the conditional-routing contract.
|
|
548
|
+
|
|
549
|
+
## Bindings (§0.j five-direction)
|
|
550
|
+
|
|
551
|
+
- **Drives →** ● Every Review Scorecards emission to PLAN-NOTES.md `## Review Scorecards`. ● Every revision-loop application across the plan suite. ● Every PASS/FAIL verdict gating downstream `/plan-execute` runs at SHARED+ per the Review Gate at Step 2 of plan-execute. ◐ The nine planning techniques' application across the audit dimensions (techniques 1, 2, 4 mandatory at SHARED+).
|
|
552
|
+
- **Satisfies →** ● the commands registry row "/plan-review". ● CM-11A Prose Fidelity + CM-11B Internal Consistency + CM-11C Gates.
|
|
553
|
+
- **Established by ↑** ● the `/plan` pipeline. ● the commands registry. ● CM-11 (Plan Integrity).
|
|
554
|
+
- **Gated by ←** ● The presence of a generated plan suite (PREAMBLE.md + MASTER-PLAN.md + PROGRESS.md + PLAN-NOTES.md + phases/). ● The presence of `_spec/spec.md` for prose-fidelity audits.
|
|
555
|
+
- **Cross-bound with ↔** ↔ `commands/plan-generate.md` (review audits the suite generate produces). ↔ `commands/plan-audit.md` (audit wraps review findings into a closed remediation loop). ↔ `commands/plan-execute.md` (execute's Step 2 Review Gate consumes this command's scorecards). ↔ `rules/planning-techniques.md` (the nine techniques operationalize here per the rule's seriousness scaling). ↔ `rules/clean-room-generation.md` (review revisions follow the §3 Re-Writing Protocol).
|