@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,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "agents-md-convention"
|
|
3
|
+
description: "The repository carries a single agent-facing canon at the root AGENTS.md; per-folder operating guidance lives in each folder's README.md, which serves both the human and the agent reader. Per-folder AGENTS.md companions are not required; any present companion stays current with its folder and the root AGENTS.md stays coherent with the AI-surface canon."
|
|
4
|
+
pathFilter: "**/AGENTS.md, **/README.md"
|
|
5
|
+
alwaysApply: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Root-Only AGENTS.md Convention — One Canon, Folder READMEs, Canon-Coherent
|
|
11
|
+
|
|
12
|
+
## What this rule enforces
|
|
13
|
+
|
|
14
|
+
The repository carries a **single agent-facing canon** at the root `AGENTS.md`. Per-folder operating guidance lives in each folder's `README.md` — one file per folder, **two audiences** (human + agent). The model:
|
|
15
|
+
|
|
16
|
+
- **Root `AGENTS.md`** is the agent-facing source of truth.
|
|
17
|
+
- **Per-folder `README.md`** is the navigable-folder guide an agent and a contributor both read on arrival.
|
|
18
|
+
- **Per-folder `AGENTS.md` companions are NOT required.** A meaningful folder without one is conformant.
|
|
19
|
+
- **Materialized harness-output `AGENTS.md`** under `harnesses/*/templates/` are **product surfaces**, not companions — they carry **no** obligation under this rule.
|
|
20
|
+
|
|
21
|
+
Where a folder genuinely needs a standalone agent companion beyond its README, the rare per-folder `AGENTS.md` it authors MUST stay **current** with its folder (updated in the same change-set that materially alters the folder's artifacts or conventions). The root `AGENTS.md` MUST stay **semantically coherent** with the AI-surface canon — it contradicts no shared claim.
|
|
22
|
+
|
|
23
|
+
## Pre-conditions
|
|
24
|
+
|
|
25
|
+
Applies whenever a meaningful folder is created, its load-bearing artifacts or local conventions change, its `README.md` is authored or edited, or a rare standalone per-folder `AGENTS.md` is authored or edited. The meaningful-folder set — the navigable-folder set the README convention applies to — is defined mechanically in §1.
|
|
26
|
+
|
|
27
|
+
## Required behavior
|
|
28
|
+
|
|
29
|
+
### 1. The Meaningful-Folder Definition
|
|
30
|
+
|
|
31
|
+
A folder is **meaningful** when it is navigable (a contributor or agent reasons about it as a unit) and load-bearing. Under the root-only convention this is the **navigable-folder set the README convention applies to** — each meaningful folder carries a `README.md` serving both readers. It is no longer an `AGENTS.md`-coverage requirement; the matcher retains the enumeration as its source-of-truth for the freshness check's folder-ownership map. The set is the union of two reproducible rules minus a fixed exclusion list:
|
|
32
|
+
|
|
33
|
+
- **(A) Companion-anchored.** Any folder that directly carries a contributor `README.md`. Excluded: test-fixture leaf directories whose README is itself the subject of a presence check (the `tests/conformity/<matcher>/{pass,fail}` fixture trees, the inject-header fixture trees) and single-artifact example scaffolds (`examples/minimal-*`) — their README documents a fixture, not a navigable subsystem.
|
|
34
|
+
- **(B) Source-package.** Any `src/apothem` folder that directly contains a Python source file but carries no `README.md` — the harness adapter packages, the shared adapter helpers, the hook library. An agent operating inside one of these packages needs the same orientation a README-bearing folder provides.
|
|
35
|
+
|
|
36
|
+
Constant exclusions across both rules: vendored trees (`_vendor/`), generated trees (`dist/`, `site/dist/`), git/cache/ephemera directories, the plan-suite scratch (`.apothem/`, `.plans/`, `.audit/`), and rendered harness-output template leaves (`src/apothem/harnesses/*/templates/`). Including any would pollute fixtures or describe machinery no contributor navigates by hand.
|
|
37
|
+
|
|
38
|
+
The definition is **executable**: `conformity/agents_md_coverage_grep.py` exposes `meaningful_folders(root) -> list[str]` as the single source of truth. Re-running the enumeration over an unchanged tree yields the identical set — the definition, the freshness check's folder-ownership map, and the CI gate all consume the same function, so the set never drifts between prose and gate. The matcher reports the set's size as `folders_inspected`; it raises **no** finding for a folder lacking a per-folder `AGENTS.md`.
|
|
39
|
+
|
|
40
|
+
### 2. The Folder README — One File, Both Readers
|
|
41
|
+
|
|
42
|
+
A folder's `README.md` carries the documentation for **both** the human reader and the agent reader. The agent-facing operating guidance a per-folder companion previously held now lives in a dedicated section of the same README. One file covers these concerns with no separate companion:
|
|
43
|
+
|
|
44
|
+
| Concern | What the folder `README.md` carries |
|
|
45
|
+
|---|---|
|
|
46
|
+
| **Purpose** | What the folder is and its role in the system — prose a contributor reads on arrival and an agent reads to understand what depends on it. |
|
|
47
|
+
| **Contents** | A map of children plus the load-bearing artifacts an agent touches and how they are organized. |
|
|
48
|
+
| **Conventions** | The concrete invariants an agent MUST respect — file-header form, frontmatter contract, naming scheme, gate requirements, mutation guards. |
|
|
49
|
+
| **Operating guidance** | How to add, modify, or remove an artifact in this folder safely, and which checks verify the change. |
|
|
50
|
+
| **Relationships** | Cross-links to sibling folders and the upstream / downstream edges — what this folder consumes and produces. |
|
|
51
|
+
|
|
52
|
+
The agent-facing section is **stable operating contract**, not volatile inventory: it does NOT carry counts (e.g., "71 rule files") that go stale. The root `AGENTS.md` remains the agent-facing **canon**; the folder README extends it folder-by-folder for the navigable-folder reader.
|
|
53
|
+
|
|
54
|
+
### 3. The Optional Standalone Companion File Shape
|
|
55
|
+
|
|
56
|
+
A per-folder `AGENTS.md` is **optional**. Where a folder genuinely needs a standalone agent companion beyond the agent-facing section of its README, the companion follows the root canon's file shape: a YAML frontmatter block (`name`, `version`, `updated`, `description`, `scope: folder`, `portability: repo-local`), then the canonical single-line SPDX license header, then the body authored against `templates/agents-md-template.md`. Any such companion is **agnostic**: it privileges no single harness, model, or tool, and pre-sets no model or effort preference. A folder describing a specific harness adapter names that harness by its catalog slug (one entry among the registered set), never by a privileging brand phrase. The same shape and agnostic discipline apply to the agent-facing section of a folder's README.
|
|
57
|
+
|
|
58
|
+
### 4. The Living-Document Rule
|
|
59
|
+
|
|
60
|
+
A folder's `README.md` — the file carrying its operating contract — MUST be updated in the **same change-set** that materially alters its folder's artifacts or conventions: a new load-bearing artifact, a removed one, a changed local convention, a changed mutation guard. The same obligation binds any present standalone `AGENTS.md` the folder keeps. A folder change that lands without updating the present companion is a **freshness defect**: the companion now misdescribes the folder.
|
|
61
|
+
|
|
62
|
+
The defect is detected mechanically. `agents_md_coverage_grep.py` reads git commit history and flags a folder whose directly-contained artifacts were last committed more recently than its **present** `AGENTS.md`. A folder with no per-folder `AGENTS.md` raises no finding — absence is conformant. The signal is **commit time**, not filesystem mtime — a checkout rewrites mtimes, so only commit history carries the truth of what changed when. Where git history is unavailable, the check degrades to a clean pass and never blocks a fresh clone.
|
|
63
|
+
|
|
64
|
+
### 5. The Canon-Sync Rule
|
|
65
|
+
|
|
66
|
+
The root `AGENTS.md` is the AI-surface **canon**. Every folder README's agent-facing guidance — and any present standalone per-folder `AGENTS.md` — **extends** the canon folder-by-folder and **contradicts no shared claim** the canon makes. The shared claims to stay coherent with: plans locality, authorship headers, ambiguity handling, naming, release freshness, human-only authorship, and public-surface plain-language. A folder MAY add folder-specific operating guidance the canon does not carry; it MUST NOT state a folder-specific rule that conflicts with a canon shared claim. When a folder's reality and the canon diverge, the divergence is a **canon-sync defect**: reconcile the folder guidance to the canon, or — if the folder genuinely needs an exception — route the exception through the canon, never silently in the per-folder file.
|
|
67
|
+
|
|
68
|
+
## Disclosure surface
|
|
69
|
+
|
|
70
|
+
Every folder-guidance emission, refresh, or reconciliation is recorded in the disclosure ledger:
|
|
71
|
+
|
|
72
|
+
- `[Companion — authored: <folder>/README.md (agent section); covers: <artifact-set>]` for new agent-facing folder guidance (or `<folder>/AGENTS.md` for a rare standalone companion).
|
|
73
|
+
- `[Companion — refreshed: <folder>/README.md; reason: <folder-change | convention-change | canon-sync>]` for an update.
|
|
74
|
+
- `[Companion — canon-sync: <folder>/README.md; reconciled: <shared-claim>]` for a divergence reconciled against the canon.
|
|
75
|
+
|
|
76
|
+
## Failure tells
|
|
77
|
+
|
|
78
|
+
A meaningful folder with no `README.md` (the navigable-folder reader has no guide). A folder README that omits agent-facing operating guidance, leaving an agent without the folder's invariants and safe-operation steps. A folder README — or a present standalone `AGENTS.md` — carrying a volatile inventory count that has gone stale. A folder whose artifacts changed in a commit that did not touch its operating-contract surface (the README, or a present companion). Folder guidance that contradicts a root-canon shared claim (e.g., asserts a plans location other than `<project-root>/.apothem/plans/`). Folder guidance that privileges one harness by a brand phrase or pre-sets a model / effort preference. A materialized harness-output `AGENTS.md` under `harnesses/*/templates/` mistaken for a companion and held to the folder-guidance obligation.
|
|
79
|
+
|
|
80
|
+
## Bindings (§0.j five-direction)
|
|
81
|
+
|
|
82
|
+
- **Drives →** Every meaningful folder's `README.md` agent-facing guidance and any rare present standalone `AGENTS.md`. The present-companion freshness matcher at `conformity/agents_md_coverage_grep.py`. The optional template at `templates/agents-md-template.md`. The CI coverage gate that runs the matcher on every change.
|
|
83
|
+
- **Driven by ←** The root `AGENTS.md` AI-surface canon (the §5 canon each folder's guidance extends). The own-voice, harness-agnostic baseline established by `agnostic-posture.md` (every surface inherits the agnostic posture).
|
|
84
|
+
- **Satisfies →** The root-only agent-surface discipline: one agent-facing canon at the root, per-folder operating guidance in each folder's README, every present companion current and canon-coherent.
|
|
85
|
+
- **Established by ↑** The root `AGENTS.md` AI Surface Canon section; the per-folder README convention this rule centers.
|
|
86
|
+
- **Cross-bound with ↔** `agnostic-posture.md` (the §3 agnostic invariant the folder-guidance content sweep enforces). `own-voice-reimplementation.md` (the own-voice baseline every folder-guidance prose honors). `plain-language.md` (the folder's agent-facing guidance is an out-of-scope agent-facing process surface, not a user-facing surface — its agent vocabulary is load-bearing).
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "agile-sprints-elements"
|
|
3
|
+
description: "Path-filtered companion rule carrying the canonical sprint-element bodies (Sprint Goal, Backlog INVEST, DoR, DoD, Review, Retrospective, Velocity), the Three Pillars detail, the Surface Imposition table, and the Failure Recovery table; demand-loaded when the parent `agile-sprints.md` rule's anchors surface."
|
|
4
|
+
pathFilter: "**/.apothem/plans/**, **/.plans/**, **/phases/**, **/PHASE.md, **/MASTER-PLAN.md, **/PROGRESS.md, **/REPORT.md"
|
|
5
|
+
alwaysApply: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Agile Sprints — Canonical Elements (Companion Sub-Rule)
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Specify the canonical sprint-element bodies for the M11 — Agile Process discipline declared at the parent rule's `rules/agile-sprints.md`. This companion is path-filtered: it loads when the assistant edits any of the multi-phase plan or phase-report surfaces where the sprint apparatus is operationalized, keeping the parent's always-on payload lean while preserving full element fidelity at the demand-load surface. The parent rule remains the canonical home for the M11 standing directive, the seven-element summary, the trivial-vs-non-trivial threshold anchor, and the disclosure surface; this companion carries the per-element bodies (§1.1–§1.7), the Three Pillars detail (§2), the Surface Imposition table (§3), and the Failure Recovery table (§4).
|
|
15
|
+
|
|
16
|
+
## Obligations
|
|
17
|
+
|
|
18
|
+
### 1. The Canonical Sprint Apparatus — Per-Element Bodies
|
|
19
|
+
|
|
20
|
+
Every non-trivial multi-step work surface emits the seven canonical elements detailed below.
|
|
21
|
+
|
|
22
|
+
#### 1.1 Sprint Goal
|
|
23
|
+
|
|
24
|
+
A **single sentence** stating the sprint's outcome, definitive per `rules/definitiveness.md` (no hedging vocabulary, no `TBD` / `TODO`, pre / post / failure conditions stated where applicable). The goal MUST be **outcome-shaped**, not activity-shaped — "users can authenticate with OAuth" is a goal; "implement OAuth" is an activity. The goal MUST be testable: at sprint close it is either achieved or not, with evidence.
|
|
25
|
+
|
|
26
|
+
#### 1.2 Sprint Backlog
|
|
27
|
+
|
|
28
|
+
A **committed, ordered list of work-items** that together achieve the Sprint Goal. Every backlog item is **INVEST-shaped**:
|
|
29
|
+
|
|
30
|
+
- **Independent.** Each item delivers value alone; cross-item dependencies are explicit and minimized.
|
|
31
|
+
- **Negotiable.** The item's scope can be refined at sprint planning without re-deriving the goal.
|
|
32
|
+
- **Valuable.** The item advances the Sprint Goal in a way the user can recognize.
|
|
33
|
+
- **Estimable.** The item carries a story-point estimate (or a host-discovered alternative — t-shirt size, hours, story points) that fits within the sprint's velocity.
|
|
34
|
+
- **Small.** The item fits within the sprint window; items larger than the sprint window are split during planning.
|
|
35
|
+
- **Testable.** The item carries acceptance criteria the Definition of Done verifies.
|
|
36
|
+
|
|
37
|
+
The backlog is **prioritized** — items are ordered by value, dependency, or risk, with the ordering rationale recorded.
|
|
38
|
+
|
|
39
|
+
#### 1.3 Definition of Ready (DoR)
|
|
40
|
+
|
|
41
|
+
The DoR is a checklist applied at **sprint entry** to every backlog item. An item that fails the DoR MUST NOT be committed to the sprint; it is returned to the upstream backlog for refinement. The canonical DoR:
|
|
42
|
+
|
|
43
|
+
- Item description states the change in natural domain language.
|
|
44
|
+
- Acceptance criteria are stated and testable.
|
|
45
|
+
- Item carries an estimate (story points, hours, or host-discovered unit).
|
|
46
|
+
- Item's prerequisites (other items, upstream gates, host-side decisions) are satisfied or explicitly deferred.
|
|
47
|
+
- Item's INVEST shape is verified.
|
|
48
|
+
- Item's affected scope (files, modules, services, public surfaces) is identified.
|
|
49
|
+
|
|
50
|
+
The host may extend the DoR with project-specific gates (e.g., security review for items touching auth surfaces, performance benchmark for items touching hot paths) per M1 host-discovery.
|
|
51
|
+
|
|
52
|
+
#### 1.4 Definition of Done (DoD)
|
|
53
|
+
|
|
54
|
+
The DoD is a checklist applied at **sprint exit** to every committed backlog item. An item that fails the DoD MUST NOT count toward the sprint's velocity. The canonical DoD:
|
|
55
|
+
|
|
56
|
+
- Artifact emitted (code / docs / configuration / data) at the canonical layout per `rules/canonical-layout.md`.
|
|
57
|
+
- Verification passed (tests, lint, format, type-check, security scan — every gate the host ratifies per M13 code-craft and M15 production-ready).
|
|
58
|
+
- Pre-emission gate attestation recorded per `rules/pre-emission-gate.md` (every fifteen-bar check passed or marked `n/a` with reason).
|
|
59
|
+
- Bindings updated per `rules/bidirectional-binding.md` (reciprocal back-pointers added in the same change-set).
|
|
60
|
+
- Acceptance criteria met (from §1.3 DoR).
|
|
61
|
+
- Disclosure ledger updated per `rules/disclosure-ledger.md` (amendments, extensions, refinements, deferrals disclosed).
|
|
62
|
+
- Production-ready discipline satisfied per `rules/production-ready-prs.md` (tests + docs + CHANGELOG entry + conformant commit + CI green in the same change-set).
|
|
63
|
+
|
|
64
|
+
The host may extend the DoD with project-specific gates (e.g., CODEOWNERS approval, security sign-off, performance regression gate) per M1 host-discovery.
|
|
65
|
+
|
|
66
|
+
#### 1.5 Sprint Review
|
|
67
|
+
|
|
68
|
+
At sprint close, **every committed backlog item is inspected** against the Definition of Done. The inspector is the **user-as-Product-Owner** by default; where the user has authorized batched review per the continuous-execution discipline at CM-16, the agent simulates the inspection and emits a Sprint Review record the user audits asynchronously.
|
|
69
|
+
|
|
70
|
+
Each item's inspection outcome is one of three:
|
|
71
|
+
|
|
72
|
+
- **Approved.** Item meets the DoD. Counts toward the sprint's velocity.
|
|
73
|
+
- **Rejected.** Item fails the DoD. Item is returned to the backlog for the next sprint. The rejection reason is recorded against the specific DoD criterion that failed.
|
|
74
|
+
- **Carry-forward.** Item is partially complete and the remaining scope is fungible across the sprint boundary. The carried portion enters the next sprint's backlog as a fresh item with refined scope.
|
|
75
|
+
|
|
76
|
+
The Sprint Review surfaces emergent concerns — items the agent encountered during execution that surface gaps in the host's process (per M6 Expertise Incorporation). Emergent concerns are recorded as findings for the user's decision.
|
|
77
|
+
|
|
78
|
+
#### 1.6 Sprint Retrospective
|
|
79
|
+
|
|
80
|
+
After the Sprint Review, a **Sprint Retrospective** identifies **process-adjustment actions for the next sprint**. The retrospective surfaces three classes of observation:
|
|
81
|
+
|
|
82
|
+
- **Continue.** Process elements that worked and the next sprint should preserve.
|
|
83
|
+
- **Stop.** Process elements that produced friction or waste; the next sprint should eliminate them.
|
|
84
|
+
- **Start.** Process elements absent from this sprint that the next should adopt.
|
|
85
|
+
|
|
86
|
+
Retrospective actions are **specific** and **actionable**, not vague (`"do better next time"` is non-conformant; `"add a test-coverage gate to the DoD"` is conformant). Actions enter the next sprint's backlog as process work-items or amend the DoR / DoD checklists in place.
|
|
87
|
+
|
|
88
|
+
#### 1.7 Velocity Tracking
|
|
89
|
+
|
|
90
|
+
Velocity is the **count of approved backlog items** (or the sum of their story points / equivalents) per sprint. Velocity feeds **empirical process control**:
|
|
91
|
+
|
|
92
|
+
- **Transparency.** Velocity is recorded sprint-over-sprint; the trajectory is visible.
|
|
93
|
+
- **Inspection.** Velocity changes (rising, falling, oscillating) are inspected for their drivers (scope drift, technical debt, external dependencies, learning curve).
|
|
94
|
+
- **Adaptation.** The next sprint's backlog is sized against the rolling velocity; over-commitment is flagged at sprint planning.
|
|
95
|
+
|
|
96
|
+
Velocity is **not** a performance metric — it is an empirical signal feeding sprint-sizing decisions. Velocity MUST NOT be treated as a target: doing so produces gaming behavior and corrupts the signal.
|
|
97
|
+
|
|
98
|
+
### 2. Empirical Process Control — The Three Pillars
|
|
99
|
+
|
|
100
|
+
Throughout the sprint, three pillars operate:
|
|
101
|
+
|
|
102
|
+
- **Transparency.** Every increment is visible to the user. The Sprint Backlog, work-in-progress items, completed items, and emergent concerns are surfaced at the user's review cadence (real-time at SHARED+, batched at PUBLIC_LAUNCH per CM-16, on-demand at lower seriousness tiers).
|
|
103
|
+
- **Inspection.** Every increment is inspected against the Definition of Done at the moment of completion, not deferred to sprint close. The pre-emission gate per `rules/pre-emission-gate.md` operationalizes per-increment inspection.
|
|
104
|
+
- **Adaptation.** Every retrospective adapts the next sprint based on what was learned. Adaptations are recorded as process work-items in the next sprint's backlog.
|
|
105
|
+
|
|
106
|
+
### 3. Surface Imposition — Where Sprints Land
|
|
107
|
+
|
|
108
|
+
| Surface | Sprint obligation |
|
|
109
|
+
|---|---|
|
|
110
|
+
| `CLAUDE.md` | Carries the standing directive that non-trivial multi-step work runs as Agile sprints with the canonical apparatus (M11 row in §8 fifteen-mandate registry). |
|
|
111
|
+
| `skills/*/SKILL.md` with multi-step procedures | Procedure body is structured as Sprint Planning → Execution → Review → Retrospective. |
|
|
112
|
+
| `commands/*.md` with multi-step output | Working trace emits sprint structure (Sprint Goal, backlog of steps, DoD verification per step, retrospective at command exit). |
|
|
113
|
+
| `agents/*.md` whose remit is multi-step | Return format organizes work as sprints with DoD attestation. |
|
|
114
|
+
| `output-styles/*.md` | Preserve sprint metadata (Sprint Goal, backlog references, retrospective notes) rather than flattening them. |
|
|
115
|
+
| Multi-phase plans at `<project-root>/.apothem/plans/*/` | Each top-level phase IS a sprint; the phase apparatus (Goal, Inputs, Outputs, Verification, Report) maps to (Sprint Goal, DoR, DoD, Sprint Review, Retrospective). The mapping is explicit per the M11 ↔ phase-apparatus correspondence at `rules/canonical-layout.md`. |
|
|
116
|
+
|
|
117
|
+
### 4. Failure Recovery — When Sprint Discipline Lapses
|
|
118
|
+
|
|
119
|
+
- **Missing Sprint Goal.** Pause execution. Surface the gap as a finding. Author the goal before resuming execution.
|
|
120
|
+
- **Backlog item fails INVEST at planning.** Return the item to the upstream backlog for refinement. Do not commit the item to the sprint with a placeholder estimate or unstated acceptance criteria.
|
|
121
|
+
- **Item fails DoD at review.** Reject or carry-forward per §1.5. Do not silently lower the DoD bar to admit the item.
|
|
122
|
+
- **Retrospective skipped under time pressure.** The retrospective is **mandatory** at SHARED+; skipping it forfeits empirical process control's adaptation pillar. The skip is itself a finding the next sprint's retrospective surfaces.
|
|
123
|
+
- **Velocity treated as target.** Velocity is the **signal**, not the **target**. When velocity gaming surfaces (item splitting to inflate count, scope shrinking to claim completion), the retrospective surfaces the corruption and the DoD adapts to close the loophole.
|
|
124
|
+
|
|
125
|
+
## Enforcement
|
|
126
|
+
|
|
127
|
+
Path-filtered (the seven glob patterns in this rule's `pathFilter` field — `**/.apothem/plans/**`, `**/.plans/**`, `**/phases/**`, `**/PHASE.md`, `**/MASTER-PLAN.md`, `**/PROGRESS.md`, `**/REPORT.md`), always-on at every seriousness level when in scope. Demand-loaded companion to `rules/agile-sprints.md`. The parent rule carries the M11 standing directive, the seven-element summary, the trivial-vs-non-trivial threshold anchor, the disclosure surface, and the failure-tells; this companion carries the per-element bodies (§1.1–§1.7), the Three Pillars detail (§2), the Surface Imposition table (§3), and the Failure Recovery table (§4).
|
|
128
|
+
|
|
129
|
+
## Bindings (§0.j five-direction)
|
|
130
|
+
|
|
131
|
+
- **Drives →** ● The per-element population at every multi-phase plan's `phases/NN-topic/PHASE.md` and parent `MASTER-PLAN.md`. ● Every Sprint Review record's three-outcome classification (approved / rejected / carry-forward) per §1.5. ● Every retrospective's continue / stop / start surface per §1.6. ● The DoR / DoD checklists at every sprint-entry / sprint-exit boundary.
|
|
132
|
+
- **Satisfies →** ● the fifteen-mandate registry row **M11 — Agile Sprints** (the demand-load surface for the per-element bodies). ● `rules/agile-sprints.md` parent anchor (the parent rule's pointer to this companion's full element catalog).
|
|
133
|
+
- **Established by ↑** ● `rules/agile-sprints.md` (parent-rule anchor). ● the fifteen-mandate registry (ratifies M11). ● The Scrum Guide's empirical process control framework (transparency / inspection / adaptation — the canonical Agile foundation; this rule's §2 Three Pillars subsection is the host-project projection of that framework).
|
|
134
|
+
- **Gated by ←** ● The path-filter (the six glob patterns) — this rule demand-loads only on multi-phase plan / phase-report artifact touches. ● `rules/agile-sprints.md` always-on baseline (parent rule must be live for the companion's anchors to surface). ● The §8.1 trivial-vs-non-trivial threshold (trivial work is exempt from the sprint apparatus).
|
|
135
|
+
- **Cross-bound with ↔** ↔ `rules/agile-sprints.md` (parent rule; anchors bind this companion). ↔ `rules/canonical-layout.md` (M12 — phase / sub-phase reporting is the layout-tier surface for sprint outputs; the M11 ↔ M12 correspondence is mutual). ↔ `rules/pre-emission-gate.md` (M4 — bar 11 of the gate enforces sprint-apparatus instantiation; §2 Inspection pillar operationalizes per-increment gate inspection). ↔ `rules/production-ready-prs.md` (M15 — DoD's `production-ready` criterion). ↔ `rules/disclosure-ledger.md` (M2 — sprint apparatus emissions are recorded in the ledger). ↔ `rules/definitiveness.md` (M8 — Sprint Goal must satisfy the definitiveness floor per §1.1).
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "agile-sprints"
|
|
3
|
+
description: "Non-trivial multi-step work in host projects runs as disciplined Agile sprints — Sprint Goal + Backlog + Definition of Ready + Definition of Done + Sprint Review + Retrospective + Velocity tracking. The trivial-vs-non-trivial threshold is the ratifiable choice (line-count + scope hybrid). Empirical process control — transparency, inspection, adaptation — applies throughout."
|
|
4
|
+
pathFilter: ""
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Agile Process — Sprints, DoR / DoD, Empirical Process Control
|
|
11
|
+
|
|
12
|
+
## What this rule enforces
|
|
13
|
+
|
|
14
|
+
Binds **M11 — Agile Process — Sprints, DoR / DoD, Empirical Process Control**. Non-trivial multi-step work in a host project MUST be structured as disciplined Agile sprints carrying the seven canonical elements (Sprint Goal, Backlog, DoR, DoD, Review, Retrospective, Velocity) under empirical process control — transparency, inspection, adaptation.
|
|
15
|
+
|
|
16
|
+
## Pre-conditions
|
|
17
|
+
|
|
18
|
+
Applies whenever the agent undertakes non-trivial multi-step work, per the trivial-vs-non-trivial threshold ratified once at the trivial-vs-non-trivial threshold (and any project-scope override per §3). Trivial work is exempt; the threshold MUST NOT be silently picked per task.
|
|
19
|
+
|
|
20
|
+
## Required behavior
|
|
21
|
+
|
|
22
|
+
### 1. Seven Canonical Elements
|
|
23
|
+
|
|
24
|
+
Every non-trivial multi-step work surface MUST emit all seven: Sprint Goal (outcome-shaped, testable), Sprint Backlog (INVEST-shaped, prioritized), Definition of Ready (sprint-entry gate), Definition of Done (sprint-exit gate), Sprint Review (approved / rejected / carry-forward per item), Sprint Retrospective (continue / stop / start), Velocity Tracking (signal, never target).
|
|
25
|
+
|
|
26
|
+
(Companion Sub-Rule Anchor) See `rules/agile-sprints-elements.md` §1 for per-element bodies.
|
|
27
|
+
|
|
28
|
+
### 2. Three Pillars of Empirical Process Control
|
|
29
|
+
|
|
30
|
+
Transparency, inspection, adaptation operate throughout every sprint.
|
|
31
|
+
|
|
32
|
+
(Companion Sub-Rule Anchor) See `rules/agile-sprints-elements.md` §2 for pillar detail.
|
|
33
|
+
|
|
34
|
+
### 3. Trivial-Threshold Anchor
|
|
35
|
+
|
|
36
|
+
The trivial-vs-non-trivial threshold is ratified once at the trivial-vs-non-trivial threshold; a project-scope override per §8.1 honors M1 host-discovery and cites its ratifying source. Host silence at the boundary routes through `rules/authority-inquiry.md` with the §8.1 default as the **Recommended** option per `rules/option-annotation.md`.
|
|
37
|
+
|
|
38
|
+
### 4. Surface Imposition
|
|
39
|
+
|
|
40
|
+
The apparatus binds `CLAUDE.md`, multi-step skills / commands / agents, output-styles (preserved), and multi-phase plans (each phase IS a sprint per the M11 ↔ M12 correspondence at `rules/canonical-layout.md`).
|
|
41
|
+
|
|
42
|
+
(Companion Sub-Rule Anchor) See `rules/agile-sprints-elements.md` §3 for the surface table.
|
|
43
|
+
|
|
44
|
+
### 5. Failure Recovery
|
|
45
|
+
|
|
46
|
+
A missing Sprint Goal, an INVEST-failing item, a DoD-failing item, a skipped retrospective, and velocity-as-target gaming each carry a specific recovery path; none MAY collapse silently into a passing sprint.
|
|
47
|
+
|
|
48
|
+
(Companion Sub-Rule Anchor) See `rules/agile-sprints-elements.md` §4 for the recovery table.
|
|
49
|
+
|
|
50
|
+
## Disclosure surface
|
|
51
|
+
|
|
52
|
+
Every sprint apparatus emission is recorded in the disclosure ledger per `rules/disclosure-ledger.md` with `[Sprint — opened …]` at planning, `[Sprint — increment …]` at each Review item (approved / rejected / carry-forward outcome plus DoD pass / fail lists), `[Sprint — retrospective …]` at close (continue / stop / start plus velocity), and `[Sprint — adaptation …]` when DoR / DoD checklists are amended.
|
|
53
|
+
|
|
54
|
+
## Failure tells
|
|
55
|
+
|
|
56
|
+
A bulk multi-day diff with no sprint structure or retrospective. A Sprint Goal phrased as activity rather than outcome. Backlog items without estimates or acceptance criteria. DoD with `n/a` on every criterion. Rubber-stamp Reviews. Vague retrospective actions. Velocity collected but never inspected. Non-trivial work emitting no apparatus (silent threshold-pick). Trivial scope emitting full apparatus (over-calibration). Project-scope threshold override without ratifying-source citation.
|
|
57
|
+
|
|
58
|
+
## Bindings (§0.j five-direction)
|
|
59
|
+
|
|
60
|
+
- **Drives →** ● Every non-trivial multi-step work surface in every host project (the seven canonical sprint elements are the work-shape floor). ● Every `skills/*/SKILL.md` multi-step procedure (Sprint Planning → Execution → Review → Retrospective). ● Every multi-phase plan's per-phase apparatus (the M11 ↔ phase-apparatus correspondence). ● The empirical process control's three pillars (transparency, inspection, adaptation) at every sprint cadence. ● The pre-emission gate's per-increment DoD inspection per `rules/pre-emission-gate.md`.
|
|
61
|
+
- **Satisfies →** ● the fifteen-mandate registry row **M11 — Agile Sprints**. ● the Pre-Emission Gate row 11 (M11 agile-sprints check). ● the trivial-vs-non-trivial threshold (this rule operationalizes the §8.1 ratification at sprint planning).
|
|
62
|
+
- **Established by ↑** ● the fifteen-mandate registry (ratifies M11). ● the trivial-vs-non-trivial threshold (the trivial-threshold ratification). ● the Pre-Emission Gate row 11. ● The Scrum Guide's empirical process control framework (transparency / inspection / adaptation — the canonical Agile foundation; this rule's §2 Three Pillars subsection is the host-project projection of that framework).
|
|
63
|
+
- **Gated by ←** ● The §8.1 trivial-threshold (trivial work is exempt from the sprint apparatus). ● `CLAUDE.md` always-loaded preamble. ● `rules/expertise-posture.md` calibration ladder (depth-to-task calibration governs whether sprint apparatus is the right scale; over-calibration on trivial work is non-conformant per §6's failure tells).
|
|
64
|
+
- **Cross-bound with ↔** ↔ `rules/agile-sprints-elements.md` (path-filtered companion sub-rule carrying §1 per-element bodies, §2 Three Pillars detail, §3 Surface Imposition table, §4 Failure Recovery table). ↔ `rules/canonical-layout.md` (M12 — phase / sub-phase reporting; the M11 ↔ M12 correspondence is mutual). ↔ `rules/pre-emission-gate.md` (M4 — bar 11 enforces sprint-apparatus instantiation). ↔ `rules/expertise-posture.md` (M6 — calibration ladder cross-references the trivial-threshold). ↔ `rules/production-ready-prs.md` (M15 — DoD's `production-ready` criterion). ↔ `rules/disclosure-ledger.md` (M2 — sprint emissions recorded). ↔ `rules/definitiveness.md` (M8 — Sprint Goal definitiveness floor). ↔ `rules/agnostic-posture.md` (the sprint apparatus is opt-in under the host-agnostic posture, not a default-on obligation).
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "agnostic-posture-checklist"
|
|
3
|
+
description: "Path-filtered companion to `agnostic-posture.md`: the default-off and opt-in invariant checklist, each with a concrete verification step, that every phase's definition of done satisfies and the planning-pipeline commands and learning loop consult."
|
|
4
|
+
pathFilter: "**/commands/**, **/rules/**, **/output-styles/**, **/statuslines/**, **/.apothem/plans/**, **/.plans/**"
|
|
5
|
+
alwaysApply: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Agnostic Posture — Checklist (Companion Sub-Rule)
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Carry the verification checklist for the parent rule `agnostic-posture.md`. The parent declares the posture — default-off behaviors, advisory correctness gates, harness neutrality, end-user-invoked preference, preserved machinery. This companion makes that posture **checkable**: it restates each invariant with a concrete verification step so a phase, a planning pass, or a learning-loop iteration can confirm a clean install still imposes nothing. Path-filtered: loads when the agent touches a shipped surface, a command, or a plan — where the posture is produced and verified.
|
|
15
|
+
|
|
16
|
+
## Obligations
|
|
17
|
+
|
|
18
|
+
### 1. The Invariant Checklist
|
|
19
|
+
|
|
20
|
+
Every phase that changes a shipped surface MUST satisfy all six invariants before its work is done. Each invariant carries a verification step that produces evidence; a phase records the outcome of each step it touches.
|
|
21
|
+
|
|
22
|
+
| # | Invariant | Verification step (evidence) |
|
|
23
|
+
|---|-----------|------------------------------|
|
|
24
|
+
| 1 | **Workflow behaviors ship default-off.** The sprint apparatus, agent-team dispatch, parallel multitasking, continuous multi-step advancement, and continuous-learning capture are each off until the end user opts in. | Load the default shared profile and assert every `enforcement` flag (`sprints`, `agent_teams`, `multitasking`, `continuous_execution`, `learning_loop`) is `False`. A flag defaulting `true` in the shipped schema or example profile fails the invariant. |
|
|
25
|
+
| 2 | **A clean install imposes no workflow.** A request runs with no sprint ceremony, no forced agent dispatch, and no parallel-task imposition unless a flag was set. | Trace a representative request against a default profile; confirm none of the five behaviors auto-applies. Where a sibling rule marks a behavior "mandatory" or "always-on", confirm that marking describes the opted-in shape, not a clean-install imposition. |
|
|
26
|
+
| 3 | **Correctness gates are advisory.** Lint, format, type-check, test, security scan, conformance, and the pre-emission gate emit findings plus a definitive next step and then yield — none blocks the end user's action by default. | Run the conformity gate without the strict opt-in; confirm it surfaces findings and a next step and exits zero. Confirm the strict flag and the strict environment variable restore blocking for the pipelines that opt in. |
|
|
27
|
+
| 4 | **No shipped surface tailors to one harness.** Every rule, command, output-style, statusline, and template renders identically across every registered harness; a harness name appears only by its slug as one catalog entry among many. | Run the agnosticism sweep over the shipped rules, commands, output-styles, and statuslines; confirm zero findings. A privileging brand reference outside a fenced example or a catalog row fails the invariant. |
|
|
28
|
+
| 5 | **Preference is end-user-invoked.** No shipped config pre-determines a model, effort, or workflow preference; the default state is unset until an in-conversation choice resolves it. | Inspect shipped commands and templates for an `effort:` or `model:` frontmatter preset; confirm none is present. The agnosticism sweep flags any re-introduced preset in a command. |
|
|
29
|
+
| 6 | **De-enforced machinery is preserved, not deleted.** Each default-off behavior keeps a working invocation path — an opt-in flag, a documented command, or a named procedure — so opting in restores it intact. | Confirm each behavior's invocation path exists, then exercise the preserve-machinery smoke test that opts each behavior in and asserts it activates. A behavior reachable by no path fails the invariant: removal, not preservation, is the defect. |
|
|
30
|
+
|
|
31
|
+
### 2. Per-Surface Use
|
|
32
|
+
|
|
33
|
+
- **A phase's definition of done.** A phase touching a shipped surface MUST run every invariant whose surface it changed and record the verification outcome. The checklist is the phase-level agnosticism gate; an unverified invariant on a touched surface is an open finding, not a pass.
|
|
34
|
+
- **The planning-pipeline commands.** Each `/plan-<stage>` command consults this checklist when shaping a phase, so each phase inherits the default-off and opt-in invariants as acceptance criteria rather than re-deriving them.
|
|
35
|
+
- **The learning loop.** When the learning loop captures a correction, it checks the correction against this checklist so a learned behavior is never wired in as a clean-install imposition.
|
|
36
|
+
|
|
37
|
+
### 3. Failure Tells
|
|
38
|
+
|
|
39
|
+
A shipped profile with an `enforcement` flag defaulting `true`. A correctness gate that aborts the end user's action on a clean install. A rule or command naming one harness as the assumed runtime or privileged path. A command frontmatter carrying an `effort:` or `model:` preset. A de-enforced behavior with no surviving invocation path. A phase that changed a shipped surface and recorded no verification outcome for the invariants it touched.
|
|
40
|
+
|
|
41
|
+
## Bindings (§0.j five-direction)
|
|
42
|
+
|
|
43
|
+
- **Drives →** every phase's agnosticism definition-of-done check; the planning-pipeline commands' per-phase acceptance criteria; the learning loop's clean-install-imposition guard; the agnosticism sweep's two detection classes (the mechanical arm of invariants 4 and 5).
|
|
44
|
+
- **Driven by ←** the parent rule `agnostic-posture.md` (the posture this checklist verifies); the operator directive that the agent impose no workflow, model, or effort.
|
|
45
|
+
- **Satisfies →** the default-off and opt-in invariant enumeration with per-invariant verification; the phase-level agnosticism gate.
|
|
46
|
+
- **Established by ↑** `agnostic-posture.md` (the posture the checklist operationalizes); the shared-profile `enforcement` schema (the opt-in surface invariant 1 inspects).
|
|
47
|
+
- **Cross-bound with ↔** `agnostic-posture.md` (parent rule; this companion carries its verification checklist); `agile-sprints.md`, `agent-orchestration.md`, `context-management.md` (the opted-in behaviors invariants 1–2 hold default-off); `pre-emission-gate.md` (its bars surface as advisories per invariant 3).
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "agnostic-posture"
|
|
3
|
+
description: "Default-off, opt-in posture for every shipped behavior; correctness gates stay advisory; every surface is harness-neutral; model, effort, and workflow preference resolve only from an explicit in-conversation choice."
|
|
4
|
+
pathFilter: ""
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Agnostic Posture — Default-Off, Opt-In, Harness-Neutral
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Govern the shipped posture so a clean install imposes nothing — no workflow ceremony, no model or effort preset, no harness bias auto-applied. Every behavior is reachable, but only the end user turns it on. This rule is the standing frame every other shipped rule and command reads its enforcement defaults through.
|
|
15
|
+
|
|
16
|
+
## Obligations
|
|
17
|
+
|
|
18
|
+
### 1. Default-off behaviors
|
|
19
|
+
|
|
20
|
+
Workflow behaviors — the sprint apparatus, agent-team dispatch, parallel multitasking, continuous multi-step advancement, and continuous-learning capture — ship **default-off**. A clean install MUST run a request with none of them engaged. Each is opt-in through the shared profile's `enforcement` flags (every flag defaults `false`); set a flag `true` to invoke that behavior. Where a sibling rule marks one of these behaviors "always-on", "mandatory", or "required at" a tier, that marking describes the behavior's shape **once the operator opts in** — never an imposition on a clean install.
|
|
21
|
+
|
|
22
|
+
### 2. Advisory correctness gates
|
|
23
|
+
|
|
24
|
+
Correctness and quality gates — lint, format, type-check, test, security scan, conformance, the pre-emission gate — stay active but **advisory**. Each MUST emit its findings plus a definitive next step and then yield; none blocks, aborts, or silently mutates the end user's action. The end user decides what to do with a finding.
|
|
25
|
+
|
|
26
|
+
### 3. Harness neutrality
|
|
27
|
+
|
|
28
|
+
No shipped surface carries tailoring for one harness. Every rule, command, output-style, statusline, and template MUST render identically across every registered harness. A harness name appears only as one catalog entry among many — never as a tailored default, a privileged path, or an assumed runtime.
|
|
29
|
+
|
|
30
|
+
### 4. End-user-invoked preference
|
|
31
|
+
|
|
32
|
+
Model, effort, and workflow preference resolve only from an explicit in-conversation choice. No shipped config pre-determines them; the default state is unset, and the agent asks or waits rather than guessing.
|
|
33
|
+
|
|
34
|
+
### 5. Machinery preserved
|
|
35
|
+
|
|
36
|
+
De-enforced behavior MUST NOT be deleted. Each behavior keeps a working invocation path — an opt-in flag, a documented command, a named procedure — so opting in restores it intact. Preservation, not removal, is the discipline.
|
|
37
|
+
|
|
38
|
+
### 6. Verification
|
|
39
|
+
|
|
40
|
+
The per-invariant verification checklist for this posture — each of the five obligations restated as a checkable invariant with a concrete verification step — lives at the path-filtered companion `agnostic-posture-checklist.md`. Every phase that changes a shipped surface runs the checklist as its agnosticism definition-of-done gate.
|
|
41
|
+
|
|
42
|
+
## Bindings (§0.j five-direction)
|
|
43
|
+
|
|
44
|
+
- **Drives →** the default-off shape of every shipped rule and command; the shared profile's `enforcement` opt-in flags; the advisory framing every correctness gate honors; the harness-neutral rendering of every shipped surface.
|
|
45
|
+
- **Driven by ←** the operator directive that the agent impose no workflow, model, or effort and delegate every such preference to the end user.
|
|
46
|
+
- **Satisfies →** the agnostic, zero-enforcement posture across the whole shipped surface; the harness-neutrality floor.
|
|
47
|
+
- **Established by ↑** `operational-mandates.md` (CM-1 critical evaluation gates whether any behavior is imposed); the shared-profile `enforcement` schema (the opt-in surface this rule references).
|
|
48
|
+
- **Cross-bound with ↔** `agnostic-posture-checklist.md` (the path-filtered companion carrying this posture's per-invariant verification checklist); `agile-sprints.md` (sprint apparatus is opt-in here); `agent-orchestration.md` (agent-team dispatch is opt-in here); `context-management.md` (continuous advancement is opt-in here); `interactive-questions.md` (preference selection routes through the end user); `pre-emission-gate.md` (its bars surface as advisories, not blocks); `own-voice-reimplementation.md` (reimplementations derive conventions from each harness's own documentation under this host-agnostic posture, not from a single reference); `multi-agent-workflow.md` (the independent-critique / open-loop / dynamic multi-agent capability is opt-in and default-off under this posture's §1; §4 governs its model and effort agnosticism — this posture controls on any apparent conflict); `agents-md-convention.md` (the per-folder folder-guidance surface that inherits the agnostic posture — every folder README's agent-facing guidance and any standalone companion privileges no harness, model, or effort). `rules/own-voice-reimplementation.md` (reimplementations derive conventions from each harness's own documentation under this host-agnostic posture).
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "authoritative-referencing-quotation"
|
|
3
|
+
description: "Quotation-ceiling / paraphrase-default companion to authoritative-referencing — paraphrase a cited source by default with attribution; quote sparingly and briefly (a short excerpt, never a full third-party work); attribute the source without offering a legal or fair-use opinion. Path-filtered to prose surfaces where source material is reproduced."
|
|
4
|
+
pathFilter: "**/*.md, **/*.mdx, **/docs/**, **/site/**"
|
|
5
|
+
alwaysApply: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Authoritative Referencing — Quotation Ceiling & Paraphrase Default (Companion Sub-Rule)
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Govern *how much* of a cited source is reproduced once `rules/authoritative-referencing.md` has decided the source is authoritative and worth citing. The parent rule binds *which* source a claim rests on and *when* to reach for a live one; this companion binds the reproduction form: paraphrase by default, quote sparingly, never copy a whole third-party work, and attribute without judging the legality of the reproduction. Path-filtered: it loads on prose surfaces — Markdown / docs / site — where source material is most likely reproduced.
|
|
15
|
+
|
|
16
|
+
## Obligations
|
|
17
|
+
|
|
18
|
+
### 1. Paraphrase by default, with attribution
|
|
19
|
+
|
|
20
|
+
The default reproduction form is a **paraphrase** of the source's content in apothem's own words, carrying an attribution to the source (a link, footnote, or inline citation per `rules/code-craft-markdown.md` §6). A paraphrase preserves the source's meaning; it does not preserve the source's wording. Reproducing a source's exact phrasing where a paraphrase would carry the same meaning is non-conformant.
|
|
21
|
+
|
|
22
|
+
### 2. Quote sparingly and briefly
|
|
23
|
+
|
|
24
|
+
A direct quotation is reserved for the case where the source's exact wording is itself load-bearing — a definition under audit, a contract clause, a phrase whose precise form is the subject. When a quotation is used:
|
|
25
|
+
|
|
26
|
+
- it is a **short excerpt** — the smallest span that carries the load-bearing wording, not a paragraph where a sentence suffices;
|
|
27
|
+
- it is **clearly marked as a quotation** (block quote, inline quotation marks, or fenced span) and visually distinct from apothem's own prose;
|
|
28
|
+
- it carries its **attribution** at the quotation site, never deferred.
|
|
29
|
+
|
|
30
|
+
A quotation longer than the load-bearing span, or used where a paraphrase would have carried the meaning, is non-conformant.
|
|
31
|
+
|
|
32
|
+
### 3. Never reproduce a full third-party work
|
|
33
|
+
|
|
34
|
+
A full third-party work — an entire article, page, chapter, file, specification section run end to end, or any reproduction that substitutes for accessing the source itself — MUST NOT be reproduced. When a reader needs the whole source, the citation links to the source so the reader reaches the original; apothem reproduces only the load-bearing excerpt and points to the rest.
|
|
35
|
+
|
|
36
|
+
### 4. Attribute without a legal opinion
|
|
37
|
+
|
|
38
|
+
Attribution names the source so the reader can reach it and credits its author or owner. Attribution does **not** assert that the reproduction is lawful, fair use, permitted, or licensed — apothem is not the arbiter of that question. A reproduction is kept within the §1–§3 ceiling (paraphrase-default, brief-quotation, no-full-work) so the question rarely arises; where a reproduction's scope is genuinely in doubt, the doubt is surfaced as an open question per `rules/authority-inquiry.md`, never resolved with a self-issued legal conclusion.
|
|
39
|
+
|
|
40
|
+
## Failure tells
|
|
41
|
+
|
|
42
|
+
A source's exact phrasing reproduced where a paraphrase would carry the same meaning (default-paraphrase skipped). A multi-paragraph block quote where a one-sentence excerpt is load-bearing (over-quotation). A quotation with no attribution at its site (uncredited reproduction). A full article, page, or file reproduced inline instead of linked (whole-work reproduction). A reproduction defended with a self-issued "this is fair use" / "this is permitted" claim (legal opinion offered where attribution was the obligation). A paraphrase that drops the source attribution (uncredited paraphrase — the parent rule's no-folklore failure tell).
|
|
43
|
+
|
|
44
|
+
## Bindings (§0.j five-direction)
|
|
45
|
+
|
|
46
|
+
- **Drives →** Every reproduction of a cited source on a prose surface under the path-filter; the paraphrase-default, brief-quotation, whole-work, and attribution-without-legal-opinion ceilings each reproduction honors before it lands.
|
|
47
|
+
- **Satisfies →** `rules/authoritative-referencing.md` — the reproduction-form half of the referencing discipline (the parent binds *which* source and *when*; this companion binds *how much* is reproduced).
|
|
48
|
+
- **Established by ↑** `rules/authoritative-referencing.md` (parent rule — the citation discipline this companion bounds the reproduction form of); the meaningful-scope threshold the parent inherits.
|
|
49
|
+
- **Gated by ←** The path-filter (`**/*.md`, `**/*.mdx`, `**/docs/**`, `**/site/**`) — this companion demand-loads only on prose-surface touches where source material is reproduced; `rules/authoritative-referencing.md` always-on baseline (the parent must be live for this companion to bound coherently).
|
|
50
|
+
- **Cross-bound with ↔** `rules/authoritative-referencing.md` (parent rule — the citation half binds which / when; this companion binds the quotation-ceiling / paraphrase-default reproduction form). `rules/source-accessibility.md` (source-trust ranking decides which source is cited; this companion bounds how much of it is reproduced). `rules/code-craft-markdown.md` (§6 link / citation discipline carries the attribution this companion requires). `rules/authority-inquiry.md` (M5 — a reproduction whose scope is in genuine doubt surfaces as an open question rather than a self-issued legal opinion). `rules/disclosure-ledger.md` (M2 — paraphrase / quotation reproduction outcomes recorded in the ledger).
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "authoritative-referencing"
|
|
3
|
+
description: "Every claim, argument, hypothesis, and asserted fact cites an authoritative, official, current source — the scattered referencing discipline (ten-dimension dim 9, sota named-exemplar, disclosure-ledger rationale, output-style citations) consolidated by reference; folklore and 'industry standard' appeals are non-conformant."
|
|
4
|
+
pathFilter: ""
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Authoritative Referencing — Cite the Source, Never Folklore
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Make the referencing bar one standing mandate, not a discipline scattered across four homes. Every claim, argument, hypothesis, or asserted fact the ecosystem emits MUST rest on an authoritative, official, current source — cited, not assumed. This rule consolidates the discipline by reference; it does not restate the per-home detail (per the de-duplication mandate).
|
|
15
|
+
|
|
16
|
+
## Obligations
|
|
17
|
+
|
|
18
|
+
### 1. Every claim carries a source
|
|
19
|
+
|
|
20
|
+
A claim, argument, hypothesis, or asserted fact of meaningful scope MUST cite its source: an official specification, vendor documentation, a primary standard (RFC / ISO / W3C), peer-reviewed work, a named currently-shipping project, or the host's own ratified source of truth at file:line. An assertion with no citable source MUST be surfaced as an open question, never stated as settled.
|
|
21
|
+
|
|
22
|
+
### 2. Authoritative, official, current
|
|
23
|
+
|
|
24
|
+
The cited source MUST be **authoritative** (the primary owner of the fact, not a downstream paraphrase), **official** (the vendor / standards body / maintainer, not an aggregator), and **current** (the in-force version, not a superseded edition). Source-trust ranking and reachability are governed by `rules/source-accessibility.md`.
|
|
25
|
+
|
|
26
|
+
### 3. Consolidate by reference, not restatement
|
|
27
|
+
|
|
28
|
+
Each per-surface referencing home keeps its single authoritative form and is cited here, never duplicated:
|
|
29
|
+
|
|
30
|
+
- **`rules/ten-dimension-check.md` dimension 9** — the scholarly / technical referencing dimension every artifact passes at emission.
|
|
31
|
+
- **`rules/sota-elevation.md` §2** — the named-exemplar discipline (a currently-shipping project, never "industry standard").
|
|
32
|
+
- **`rules/disclosure-ledger.md`** — the rationale-citation bar every ledger marker meets.
|
|
33
|
+
- **`output-styles/default.md` §Citations** — the link-the-source rendering on user-facing output.
|
|
34
|
+
|
|
35
|
+
### 4. No folklore
|
|
36
|
+
|
|
37
|
+
Folklore, hearsay, "best practice" without a named owner, "industry standard", "everyone knows", and consensus-appeal phrasings are non-conformant. A claim is grounded in a citable source or it is reframed as an open question.
|
|
38
|
+
|
|
39
|
+
### 5. When to consult a live source
|
|
40
|
+
|
|
41
|
+
Reach for a live source when a fact may have shifted since training or its current status is unknown — a version, release, price, or API surface. Skip it for timeless or definitional facts. Obligation 2 governs *which* source; this governs *when*.
|
|
42
|
+
|
|
43
|
+
## Seriousness Scaling
|
|
44
|
+
|
|
45
|
+
| Level | Referencing obligation |
|
|
46
|
+
| ----- | ---------------------- |
|
|
47
|
+
| EXPLORING | Cite where a claim is load-bearing; folklore avoided. |
|
|
48
|
+
| PERSONAL_USE | Cite material claims; named sources for non-obvious facts. |
|
|
49
|
+
| SHARED | Every meaningful-scope claim cited to an authoritative current source. |
|
|
50
|
+
| PUBLIC_LAUNCH | Every public-surface claim cited; no folklore; superseded sources refreshed to the in-force edition. |
|
|
51
|
+
|
|
52
|
+
## Enforcement
|
|
53
|
+
|
|
54
|
+
Always-on at every seriousness level, scaling per the table above. Referencing is checked as dimension 9 of the pre-emission gate's ten-dimension bar (`rules/ten-dimension-check.md`); this rule is its outward-projected standing mandate, not a second matcher.
|
|
55
|
+
|
|
56
|
+
## Failure tells
|
|
57
|
+
|
|
58
|
+
A claim stated as settled with no citable source; "industry standard" / "best practice" / "everyone knows" offered as the authority; a citation to a downstream aggregator where the primary owner exists; a superseded edition cited as current; a SOTA citation with no named currently-shipping exemplar.
|
|
59
|
+
|
|
60
|
+
## Bindings (§0.j five-direction)
|
|
61
|
+
|
|
62
|
+
- **Drives →** Every claim / argument / hypothesis / fact emission across every ecosystem surface; the citable-source requirement each carries before it is stated as settled.
|
|
63
|
+
- **Satisfies →** The standing-mandate end-state that no claim rests on folklore; the consolidation of the scattered referencing discipline into one cited home.
|
|
64
|
+
- **Established by ↑** The operator's standing-mandate set (the authoritative-referencing mandate — cite authoritative / official / current sources).
|
|
65
|
+
- **Gated by ←** `rules/source-accessibility.md` (the source-trust ranking and reachability decide WHICH source is cited); the meaningful-scope threshold (trivial edits cite only load-bearing claims).
|
|
66
|
+
- **Cross-bound with ↔** `rules/authoritative-referencing-quotation.md` (path-filtered companion — the quotation-ceiling / paraphrase-default reproduction form bounding *how much* of a cited source is reproduced); `rules/ten-dimension-check.md` (dimension 9 Scholarly / technical referencing — the per-artifact check this mandate outward-projects); `rules/sota-elevation.md` (§2 named-exemplar discipline — the no-"industry-standard" citation bar); `rules/disclosure-ledger.md` (M2 — the rationale-citation bar every ledger marker meets); `rules/source-accessibility.md` (the trust-outranks-accessibility ranking feeding obligation 2).
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "authority-inquiry-categories"
|
|
3
|
+
description: "Path-filtered companion sub-rule carrying the seven-category inquiry catalog (full forbidden-to-invent + inquire-because columns), the required-vs-optional explanatory paragraph, the carved-out auto-decisions catalog, and the failure-tells enumeration declared at the parent `authority-inquiry.md` rule's anchors; demand-loaded on host-project artifact authoring."
|
|
4
|
+
pathFilter: "**/*.md, **/CLAUDE.md, **/rules/**, **/commands/**, **/skills/**, **/agents/**, **/docs/**"
|
|
5
|
+
alwaysApply: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
9
|
+
|
|
10
|
+
# Rule: Authoritative Inquiry — Seven Categories, Carve-Outs, and Failure Tells (Companion Sub-Rule)
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Specify the executable catalog surfaces for the M5 authoritative-inquiry discipline declared at the parent rule `rules/authority-inquiry.md`. This companion is path-filtered: it loads when the assistant edits any host-project artifact under the governed-core authoring directories, keeping the parent's always-on payload lean while preserving full catalog fidelity at the demand-load surface. The parent rule remains the canonical home for the M5 standing directive, the canonical-channel routing, and the disclosure-surface anchors; this companion carries the full seven-row inquiry catalog, the required-vs-optional explanatory paragraph, the carved-out auto-decisions catalog, and the failure-tells enumeration.
|
|
15
|
+
|
|
16
|
+
## Obligations
|
|
17
|
+
|
|
18
|
+
### 1. The Seven Inquiry Categories
|
|
19
|
+
|
|
20
|
+
| Category | Forbidden to invent | Inquire because |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| **Identity** | Names, emails, handles, pronouns, organizations, tenants, team affiliations, role descriptions. | Bind to a real person; create real-world artifacts (commits, PRs, public attribution). |
|
|
23
|
+
| **Scope direction** | Which subtree, which branch, which environment (dev / staging / prod), which target (libraries vs services), which user-facing vs internal-only. | The user has implicit context the agent lacks; silent picks misalign. |
|
|
24
|
+
| **Preference** | Formatter, linter, test framework, documentation generator, CI provider, branch strategy, commit-message convention, release-signing mechanism, versioning scheme, license — *where the host has not ratified one*. | Each is a long-lived ratification that resists silent adoption. |
|
|
25
|
+
| **Security** | Secret-rotation cadence, allowed shells, allowed network egress, accepted-risks list, trusted-action allowlist, MCP-server auth endpoint specifics. | Security misconfiguration is high-impact; silent picks risk silent breach. |
|
|
26
|
+
| **Naming** | A new convention introduced where the host has none, or a name binding (function name, CLI flag, subcommand, config key) where the user has implicit preferences. | Names are durable; silent picks compound into namespace pollution. |
|
|
27
|
+
| **Infrastructure** | Endpoints, hosts, ports, paths, regions, queue names, topic names, table names. | Bind to real-world resources; invention causes real-world failures. |
|
|
28
|
+
| **Version pins** | Which version of which dependency, where the host has not pinned and the choice matters (security-relevant deps, behavioral-shift deps, semver-major boundaries). | Long-tail consequences; silent picks burden the user. |
|
|
29
|
+
|
|
30
|
+
**Required inquiries** (Identity, Scope direction, Security posture, Naming-of-public-surfaces) MUST block dependent artifacts: emission produces `<USER-CONFIRM:id=<id>>` placeholders that pre-emission gate row 5 at `rules/pre-emission-gate.md` rejects until resolved. **Optional inquiries** the user MAY decline by silence; the agent then falls back to the **Recommended** option per `rules/option-annotation.md` and records the fallback as a finding so the user sees a decision was made. The split is fixed: the four required categories never silently resolve to an internal default; the remaining categories never block emission.
|
|
31
|
+
|
|
32
|
+
### 2. Carved-Out Auto-Decisions
|
|
33
|
+
|
|
34
|
+
To prevent inquiry fatigue, the agent MAY decide the following five classes **without inquiry** — each disclosed in the change ledger as `[Default — applied: <decision>; class: <carve-out>]`:
|
|
35
|
+
|
|
36
|
+
- **Pure validity.** Syntax errors, schema violations, unambiguous typos.
|
|
37
|
+
- **Pure rigor.** Folklore → cited; missing dates added; unverifiable claims marked.
|
|
38
|
+
- **Universally-safe security.** `deny .env*`, `deny ~/.ssh/**` reads, `deny rm -rf:*`, `deny sudo:*`, `deny git push --force*` to protected branches, `deny eval` / `exec` on untrusted input.
|
|
39
|
+
- **Pure formatting normalization.** EOL, trailing whitespace, single quote-style per file *where the host has a ratified style and the artifact diverges*.
|
|
40
|
+
- **Internal reference repair where the fix is unambiguous.** Dead path → unique live path discovered by search.
|
|
41
|
+
|
|
42
|
+
Anything outside this carve-out goes through the inquiry surface.
|
|
43
|
+
|
|
44
|
+
### 3. Failure Tells
|
|
45
|
+
|
|
46
|
+
A `mailto:` field with a plausible-looking but unverified address. An invented domain in an MCP endpoint. A `CODEOWNERS` line with a guessed handle. A README "maintainer" field that the user has not stated. A version pin on a host-mutable dependency without the user's ratification. A `package.json` `author` field populated from `.git/config` without inquiry. A test-fixture user record with a synthetic-looking name and email. An emitted artifact carrying an unfilled `<USER-CONFIRM:…>` placeholder. A required-category decision (identity / scope / security / public-surface naming) silently resolved to an internal default.
|
|
47
|
+
|
|
48
|
+
## Enforcement
|
|
49
|
+
|
|
50
|
+
Path-filtered (the seven glob patterns in this rule's `pathFilter` field), always-on at every seriousness level when in scope. Demand-loaded companion to `rules/authority-inquiry.md`. The parent rule carries the M5 standing directive, the canonical-channel routing through `rules/interactive-questions.md`, and the disclosure-surface anchors; this companion carries the seven-row inquiry catalog with full columns, the required-vs-optional explanatory paragraph, the carved-out auto-decisions catalog, and the failure-tells enumeration. Together they constitute the canonical specification for M5 — Authority Principle (inquiry half).
|
|
51
|
+
|
|
52
|
+
## Bindings (§0.j five-direction)
|
|
53
|
+
|
|
54
|
+
- **Drives →** ● Every host-project artifact authoring session under the seven path-filter globs (every authoritative-data emission consults the §1 catalog). ● The carve-out auto-decision routing at §2 (every default-applied decision is recorded with the named class). ● The failure-tells sweep at §3 (every emitted artifact passes the failure-tell screening). ◐ The pre-emission gate row 5 at `rules/pre-emission-gate.md` (the placeholder-presence check operationalizes this companion's required-inquiry blocking).
|
|
55
|
+
- **Satisfies →** ● the fifteen-mandate registry row **M5 — Authority Principle** (inquiry-half catalog surface). ● `rules/authority-inquiry.md` — Required Categories (the seven-row catalog). ● `rules/authority-inquiry.md` Carved-Out Auto-Decisions (the carve-out catalog). ● `rules/authority-inquiry.md` companion-sub-rule anchors (the parent rule's pointers to this companion's full catalogs).
|
|
56
|
+
- **Established by ↑** ● `rules/authority-inquiry.md` (parent-rule anchors). ● the fifteen-mandate registry (ratifies M5). ● `rules/authority-inquiry.md` + §10.1 (the upstream catalog specifications this companion reproduces with operational depth).
|
|
57
|
+
- **Gated by ←** ● The path-filter (the seven glob patterns) — this rule demand-loads only on host-project artifact authoring touches. ● `rules/authority-inquiry.md` always-on baseline (parent rule must be live for the companion's anchors to surface).
|
|
58
|
+
- **Cross-bound with ↔** ↔ `rules/authority-inquiry.md` (parent rule; companion-sub-rule anchors bind this companion). ↔ `rules/interactive-questions.md` (the canonical-channel routing the parent rule delegates; every §1 inquiry routes through the structured inquiry schema). ↔ `rules/host-discovery.md` (M5 discovery half — the discovery and inquiry halves form a complete coverage of authority data; §1 categories are the inquiry-half projection of M1's discovery walk). ↔ `rules/disclosure-ledger.md` (M2 — every §1 inquiry outcome and §2 carve-out default is recorded in the ledger). ↔ `rules/option-annotation.md` (M7 — every §1 inquiry's option set carries the recommended marker). ↔ `rules/pre-emission-gate.md` (M4 — bar 5 of the gate enforces this companion's `<USER-CONFIRM:…>`-placeholder absence and unresolved-inquiry array population).
|