@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,353 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
# Handoff Manifest Schema
|
|
4
|
+
#
|
|
5
|
+
# YAML-fronted schema specification for the Handoff Manifest carried through
|
|
6
|
+
# the `/plan-*` pipeline. `plan-spec` creates the manifest; `plan-generate`,
|
|
7
|
+
# `plan-review`, `plan-design`, and `plan-execute` augment it as they add
|
|
8
|
+
# validated artifacts. Downstream commands refuse to proceed if the manifest is
|
|
9
|
+
# missing, malformed, or violates the `p0-unresolved: 0` / `p1-unresolved: 0`
|
|
10
|
+
# invariant.
|
|
11
|
+
#
|
|
12
|
+
# Manifest instances land at `{suite}/_inputs/handoff-manifest.yml` per the
|
|
13
|
+
# command's Output table. Standalone invocations still emit the manifest with
|
|
14
|
+
# `downstream: "none (standalone invocation)"` — terminal-ness is never silent.
|
|
15
|
+
|
|
16
|
+
# -----------------------------------------------------------------------------
|
|
17
|
+
# Field-level schema
|
|
18
|
+
# -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
command:
|
|
21
|
+
type: string
|
|
22
|
+
required: true
|
|
23
|
+
enum:
|
|
24
|
+
- plan-spec
|
|
25
|
+
- plan-generate
|
|
26
|
+
- plan-review
|
|
27
|
+
- plan-design
|
|
28
|
+
- plan-execute
|
|
29
|
+
- plan-status
|
|
30
|
+
description: |
|
|
31
|
+
The most recent command that emitted or augmented this manifest. The
|
|
32
|
+
canonical sequence is `plan-spec` → `plan-generate` → `plan-review` →
|
|
33
|
+
`plan-design` (conditional for architecture-bearing suites) →
|
|
34
|
+
`plan-execute`; `plan-status` is read-only but may report against the same
|
|
35
|
+
manifest shape.
|
|
36
|
+
|
|
37
|
+
repository:
|
|
38
|
+
type: string
|
|
39
|
+
required: true
|
|
40
|
+
pattern: '^[a-z0-9][a-z0-9-]*$'
|
|
41
|
+
description: |
|
|
42
|
+
Repo-bound identifier per the work-root naming convention. Kebab-case,
|
|
43
|
+
starts with a letter or digit. Non-empty.
|
|
44
|
+
|
|
45
|
+
mission:
|
|
46
|
+
type: string
|
|
47
|
+
required: true
|
|
48
|
+
pattern: '^[a-z0-9][a-z0-9-]*$'
|
|
49
|
+
description: |
|
|
50
|
+
Mission-bearing identifier per the work-root naming convention. Kebab-case,
|
|
51
|
+
starts with a letter or digit. Distinct from `repository`. Non-empty.
|
|
52
|
+
|
|
53
|
+
created_at:
|
|
54
|
+
type: string
|
|
55
|
+
required: true
|
|
56
|
+
format: iso8601
|
|
57
|
+
description: |
|
|
58
|
+
Timestamp at G5 emission. ISO-8601 UTC with `Z` suffix. Example:
|
|
59
|
+
`2026-04-27T15:30:00Z`.
|
|
60
|
+
|
|
61
|
+
invocation_sequence:
|
|
62
|
+
type: integer
|
|
63
|
+
required: true
|
|
64
|
+
minimum: 1
|
|
65
|
+
description: |
|
|
66
|
+
Monotonically increasing per-suite invocation counter. Initial run = 1;
|
|
67
|
+
each `--refine-existing` run increments by 1. Lets downstream commands
|
|
68
|
+
detect spec drift between consecutive Forge runs.
|
|
69
|
+
|
|
70
|
+
downstream:
|
|
71
|
+
type: string
|
|
72
|
+
required: true
|
|
73
|
+
description: |
|
|
74
|
+
The downstream consumer. One of the canonical command paths
|
|
75
|
+
(`/plan-generate`, `/plan-review`, `/plan-design`, `/plan-execute`,
|
|
76
|
+
`/plan-status`) OR the literal string `none (standalone invocation)` per
|
|
77
|
+
the standalone-invocation discipline.
|
|
78
|
+
|
|
79
|
+
p0-unresolved:
|
|
80
|
+
type: integer
|
|
81
|
+
required: true
|
|
82
|
+
enum: [0]
|
|
83
|
+
description: |
|
|
84
|
+
Count of P0-severity questionables that did not resolve at their gate and
|
|
85
|
+
do not carry a deferred-with-placeholder routing. The four-discipline
|
|
86
|
+
operational invariant requires this field to read `0`. A non-zero value is
|
|
87
|
+
a P0 integrity failure; downstream refuses to proceed.
|
|
88
|
+
|
|
89
|
+
p1-unresolved:
|
|
90
|
+
type: integer
|
|
91
|
+
required: true
|
|
92
|
+
enum: [0]
|
|
93
|
+
description: |
|
|
94
|
+
Count of P1-severity questionables that did not resolve at their gate and
|
|
95
|
+
do not carry a deferred-with-placeholder routing. Required to read `0` per
|
|
96
|
+
the operational invariant. Non-zero = downstream refuses to proceed.
|
|
97
|
+
|
|
98
|
+
placeholders:
|
|
99
|
+
type: array
|
|
100
|
+
required: true
|
|
101
|
+
items:
|
|
102
|
+
type: object
|
|
103
|
+
properties:
|
|
104
|
+
kind:
|
|
105
|
+
type: string
|
|
106
|
+
required: true
|
|
107
|
+
description: |
|
|
108
|
+
The questionable's kind tag (e.g., `identity`, `workroot-scheme`,
|
|
109
|
+
`ops-verification`). Joins to the Question-Resolution Audit row's
|
|
110
|
+
`trigger-category` and to the spec's inline placeholder.
|
|
111
|
+
defer-reason:
|
|
112
|
+
type: string
|
|
113
|
+
required: true
|
|
114
|
+
description: |
|
|
115
|
+
One sentence; cites the concrete reason deferral was selected over
|
|
116
|
+
inline resolution.
|
|
117
|
+
defer-timestamp:
|
|
118
|
+
type: string
|
|
119
|
+
required: true
|
|
120
|
+
format: iso8601
|
|
121
|
+
description: |
|
|
122
|
+
ISO-8601 UTC timestamp at deferral.
|
|
123
|
+
deferred-by-command:
|
|
124
|
+
type: string
|
|
125
|
+
required: true
|
|
126
|
+
enum:
|
|
127
|
+
- plan-spec
|
|
128
|
+
- plan-generate
|
|
129
|
+
- plan-review
|
|
130
|
+
- plan-design
|
|
131
|
+
- plan-execute
|
|
132
|
+
description: |
|
|
133
|
+
The command that surfaced and deferred the question.
|
|
134
|
+
resolve-by-gate:
|
|
135
|
+
type: string
|
|
136
|
+
required: true
|
|
137
|
+
description: |
|
|
138
|
+
The downstream gate at which resolution is expected. Either a named
|
|
139
|
+
gate of a downstream command (`/plan-generate G1` etc.) or the
|
|
140
|
+
literal `next-Forge-iteration` for refinement-loop deferrals.
|
|
141
|
+
description: |
|
|
142
|
+
Empty array `[]` is admissible when no questionable was deferred.
|
|
143
|
+
Otherwise carries one row per `<USER-CONFIRM:...>` placeholder embedded in
|
|
144
|
+
the emitted spec.
|
|
145
|
+
|
|
146
|
+
appendices:
|
|
147
|
+
type: object
|
|
148
|
+
required: true
|
|
149
|
+
properties:
|
|
150
|
+
consideration_log:
|
|
151
|
+
type: object
|
|
152
|
+
properties:
|
|
153
|
+
path:
|
|
154
|
+
type: string
|
|
155
|
+
required: true
|
|
156
|
+
description: Path to the Consideration Log inside the emitted spec (e.g., `_spec/spec.md#appendix-a-consideration-log`).
|
|
157
|
+
row_count:
|
|
158
|
+
type: integer
|
|
159
|
+
required: true
|
|
160
|
+
minimum: 1
|
|
161
|
+
potency_map:
|
|
162
|
+
type: object
|
|
163
|
+
properties:
|
|
164
|
+
path:
|
|
165
|
+
type: string
|
|
166
|
+
required: true
|
|
167
|
+
row_count:
|
|
168
|
+
type: integer
|
|
169
|
+
required: true
|
|
170
|
+
minimum: 1
|
|
171
|
+
preservation_audit:
|
|
172
|
+
type: object
|
|
173
|
+
properties:
|
|
174
|
+
path:
|
|
175
|
+
type: string
|
|
176
|
+
required: true
|
|
177
|
+
l1_pass:
|
|
178
|
+
type: integer
|
|
179
|
+
required: true
|
|
180
|
+
l1_fail:
|
|
181
|
+
type: integer
|
|
182
|
+
required: true
|
|
183
|
+
enum: [0]
|
|
184
|
+
l2_pass:
|
|
185
|
+
type: integer
|
|
186
|
+
required: true
|
|
187
|
+
l2_fail:
|
|
188
|
+
type: integer
|
|
189
|
+
required: true
|
|
190
|
+
enum: [0]
|
|
191
|
+
l3_pass:
|
|
192
|
+
type: integer
|
|
193
|
+
required: true
|
|
194
|
+
l3_partial:
|
|
195
|
+
type: integer
|
|
196
|
+
required: true
|
|
197
|
+
l3_fail:
|
|
198
|
+
type: integer
|
|
199
|
+
required: true
|
|
200
|
+
enum: [0]
|
|
201
|
+
expertise_gap_log:
|
|
202
|
+
type: object
|
|
203
|
+
properties:
|
|
204
|
+
path:
|
|
205
|
+
type: string
|
|
206
|
+
required: true
|
|
207
|
+
applied_axes_count:
|
|
208
|
+
type: integer
|
|
209
|
+
required: true
|
|
210
|
+
minimum: 0
|
|
211
|
+
maximum: 7
|
|
212
|
+
not_applicable_axes_count:
|
|
213
|
+
type: integer
|
|
214
|
+
required: true
|
|
215
|
+
minimum: 0
|
|
216
|
+
maximum: 7
|
|
217
|
+
envelope_limited_axes_count:
|
|
218
|
+
type: integer
|
|
219
|
+
required: true
|
|
220
|
+
minimum: 0
|
|
221
|
+
maximum: 7
|
|
222
|
+
question_resolution_audit:
|
|
223
|
+
type: object
|
|
224
|
+
properties:
|
|
225
|
+
path:
|
|
226
|
+
type: string
|
|
227
|
+
required: true
|
|
228
|
+
row_count:
|
|
229
|
+
type: integer
|
|
230
|
+
required: true
|
|
231
|
+
minimum: 0
|
|
232
|
+
p0_count:
|
|
233
|
+
type: integer
|
|
234
|
+
required: true
|
|
235
|
+
p1_count:
|
|
236
|
+
type: integer
|
|
237
|
+
required: true
|
|
238
|
+
p2_count:
|
|
239
|
+
type: integer
|
|
240
|
+
required: true
|
|
241
|
+
description: |
|
|
242
|
+
Each of the five mandatory appendices reports its anchor + summary
|
|
243
|
+
statistics so downstream commands can verify the spec's appendix integrity
|
|
244
|
+
without re-parsing the spec body.
|
|
245
|
+
|
|
246
|
+
plan_review:
|
|
247
|
+
type: object
|
|
248
|
+
required: false
|
|
249
|
+
properties:
|
|
250
|
+
scorecards_path:
|
|
251
|
+
type: string
|
|
252
|
+
required: false
|
|
253
|
+
verdict:
|
|
254
|
+
type: string
|
|
255
|
+
required: false
|
|
256
|
+
enum:
|
|
257
|
+
- pass
|
|
258
|
+
- fail
|
|
259
|
+
- not-run
|
|
260
|
+
description: |
|
|
261
|
+
Optional augmentation emitted by `/plan-review`. `/plan-design` consumes
|
|
262
|
+
this block at SHARED+ seriousness and refuses to author a design when the
|
|
263
|
+
review verdict is missing or failing.
|
|
264
|
+
|
|
265
|
+
plan_design:
|
|
266
|
+
type: object
|
|
267
|
+
required: false
|
|
268
|
+
properties:
|
|
269
|
+
applicability:
|
|
270
|
+
type: string
|
|
271
|
+
required: false
|
|
272
|
+
enum:
|
|
273
|
+
- architecture-bearing
|
|
274
|
+
- non-architecture-bearing
|
|
275
|
+
description: |
|
|
276
|
+
Classification emitted by `/plan-design` or by the upstream review
|
|
277
|
+
handoff. `architecture-bearing` requires `artifact_path`;
|
|
278
|
+
`non-architecture-bearing` records an explicit skip and allows
|
|
279
|
+
`/plan-execute` to proceed without `_inputs/design.md`.
|
|
280
|
+
skipped_reason:
|
|
281
|
+
type: string
|
|
282
|
+
required: false
|
|
283
|
+
description: |
|
|
284
|
+
One-sentence rationale when `applicability` is
|
|
285
|
+
`non-architecture-bearing`; omitted for architecture-bearing suites.
|
|
286
|
+
artifact_path:
|
|
287
|
+
type: string
|
|
288
|
+
required: false
|
|
289
|
+
description: |
|
|
290
|
+
Path to the design artifact, normally `_inputs/design.md`.
|
|
291
|
+
design_gate:
|
|
292
|
+
type: object
|
|
293
|
+
required: false
|
|
294
|
+
description: |
|
|
295
|
+
Fifteen-bar validation-gate attestation emitted by `/plan-design`.
|
|
296
|
+
seven_axis_attestation:
|
|
297
|
+
type: object
|
|
298
|
+
required: false
|
|
299
|
+
description: |
|
|
300
|
+
Per-axis coverage against Architecture, Concurrency, Performance,
|
|
301
|
+
Security, Testing, Tooling, and Observability.
|
|
302
|
+
binding_matrix_summary:
|
|
303
|
+
type: object
|
|
304
|
+
required: false
|
|
305
|
+
description: |
|
|
306
|
+
Bidirectional Binding Matrix summary emitted when the design triggers
|
|
307
|
+
the matrix threshold.
|
|
308
|
+
description: |
|
|
309
|
+
Optional architecture-bearing augmentation emitted by `/plan-design`.
|
|
310
|
+
`/plan-execute` consumes this block for phases whose PHASE.md declares
|
|
311
|
+
architecture-bearing outputs; `/architecture-review` consumes the same
|
|
312
|
+
design artifact during the Audit Review Sequence.
|
|
313
|
+
|
|
314
|
+
# -----------------------------------------------------------------------------
|
|
315
|
+
# Worked example
|
|
316
|
+
# -----------------------------------------------------------------------------
|
|
317
|
+
#
|
|
318
|
+
# command: plan-spec
|
|
319
|
+
# repository: apothem
|
|
320
|
+
# mission: database-migration-v2
|
|
321
|
+
# created_at: 2026-04-27T15:30:00Z
|
|
322
|
+
# invocation_sequence: 1
|
|
323
|
+
# downstream: /plan-generate
|
|
324
|
+
# p0-unresolved: 0
|
|
325
|
+
# p1-unresolved: 0
|
|
326
|
+
# placeholders: []
|
|
327
|
+
# appendices:
|
|
328
|
+
# consideration_log:
|
|
329
|
+
# path: _spec/spec.md#appendix-a-consideration-log
|
|
330
|
+
# row_count: 38
|
|
331
|
+
# potency_map:
|
|
332
|
+
# path: _spec/spec.md#appendix-b-potency-map
|
|
333
|
+
# row_count: 47
|
|
334
|
+
# preservation_audit:
|
|
335
|
+
# path: _spec/spec.md#appendix-c-preservation-audit
|
|
336
|
+
# l1_pass: 124
|
|
337
|
+
# l1_fail: 0
|
|
338
|
+
# l2_pass: 47
|
|
339
|
+
# l2_fail: 0
|
|
340
|
+
# l3_pass: 12
|
|
341
|
+
# l3_partial: 0
|
|
342
|
+
# l3_fail: 0
|
|
343
|
+
# expertise_gap_log:
|
|
344
|
+
# path: _spec/spec.md#appendix-d-expertise-gap-log
|
|
345
|
+
# applied_axes_count: 5
|
|
346
|
+
# not_applicable_axes_count: 2
|
|
347
|
+
# envelope_limited_axes_count: 0
|
|
348
|
+
# question_resolution_audit:
|
|
349
|
+
# path: _spec/spec.md#appendix-e-question-resolution-audit
|
|
350
|
+
# row_count: 6
|
|
351
|
+
# p0_count: 0
|
|
352
|
+
# p1_count: 4
|
|
353
|
+
# p2_count: 2
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# schemas/header-exceptions.txt — final form
|
|
2
|
+
#
|
|
3
|
+
# Encodes the categorical authorship-header exception list from
|
|
4
|
+
# spec §4.6.4 as a glob fixture. Each non-comment, non-blank line is a
|
|
5
|
+
# pathspec relative to the working-tree root. Patterns honor
|
|
6
|
+
# fnmatch-style globbing with `**` segment expansion (recursive
|
|
7
|
+
# directory match), so `**/vendor/**` matches every file in any
|
|
8
|
+
# `vendor/` subtree.
|
|
9
|
+
#
|
|
10
|
+
# Authored as a draft at the coverage-map sub-phase, ratified
|
|
11
|
+
# operator-approved-as-is at the banner-ratification sub-phase, and
|
|
12
|
+
# locked here at the fixture-and-injector sub-phase alongside the
|
|
13
|
+
# canonical banner fixture (`schemas/authorship-header.txt`) and the
|
|
14
|
+
# injector scripts (`scripts/inject-header.{sh,py}`). Any future
|
|
15
|
+
# amendment requires re-firing the banner-ratification structured inquiry
|
|
16
|
+
# and producing a new ratification record.
|
|
17
|
+
#
|
|
18
|
+
# Lines beginning with `#` are comments. Blank lines are ignored.
|
|
19
|
+
|
|
20
|
+
# --- Fixture self-exemption ---------------------------------------------------
|
|
21
|
+
# The canonical banner fixture IS the byte-exact banner content; injecting
|
|
22
|
+
# the banner into the fixture would produce a recursive header-of-header.
|
|
23
|
+
schemas/authorship-header.txt
|
|
24
|
+
|
|
25
|
+
# --- Categorical filename exemptions -----------------------------------------
|
|
26
|
+
# The legal instrument itself; carries its own copyright line that the
|
|
27
|
+
# license-author-consistency validator verifies is present in LICENSE.
|
|
28
|
+
LICENSE
|
|
29
|
+
LICENSE.md
|
|
30
|
+
LICENSE.txt
|
|
31
|
+
NOTICE
|
|
32
|
+
|
|
33
|
+
# Version string, single-line by convention.
|
|
34
|
+
VERSION
|
|
35
|
+
|
|
36
|
+
# --- Categorical extension exemptions ----------------------------------------
|
|
37
|
+
# JSON has no comment syntax; sibling `<file>.NOTICE.md` carries
|
|
38
|
+
# attribution where required.
|
|
39
|
+
**/*.json
|
|
40
|
+
|
|
41
|
+
# Lockfiles — machine-managed; banner would churn on every dependency
|
|
42
|
+
# update and provoke spurious diffs.
|
|
43
|
+
**/*.lock
|
|
44
|
+
**/package-lock.json
|
|
45
|
+
**/yarn.lock
|
|
46
|
+
**/pnpm-lock.yaml
|
|
47
|
+
**/Cargo.lock
|
|
48
|
+
**/Pipfile.lock
|
|
49
|
+
**/poetry.lock
|
|
50
|
+
**/uv.lock
|
|
51
|
+
**/go.sum
|
|
52
|
+
|
|
53
|
+
# --- Vendored / third-party trees --------------------------------------------
|
|
54
|
+
# Upstream attribution must not be overwritten with our banner. Apothem's
|
|
55
|
+
# frozen vendored tree lives at `src/apothem/_vendor/` (leading underscore),
|
|
56
|
+
# so `**/_vendor/**` is the load-bearing exemption; `**/vendor/**` is retained
|
|
57
|
+
# for any future non-underscore vendored tree.
|
|
58
|
+
**/_vendor/**
|
|
59
|
+
**/vendor/**
|
|
60
|
+
**/third_party/**
|
|
61
|
+
**/node_modules/**
|
|
62
|
+
|
|
63
|
+
# --- Audit / planning ephemera ------------------------------------------------
|
|
64
|
+
# Out of scope of the published tree (gitignored). The canonical working
|
|
65
|
+
# directory is `.apothem/` (plans, memory, learning, contexts); a legacy
|
|
66
|
+
# `.plans/` tree is upgraded to `.apothem/plans/` via `apothem migrate-workspace`.
|
|
67
|
+
.audit/**
|
|
68
|
+
.apothem/**
|
|
69
|
+
projects/**
|
|
70
|
+
memory/**
|
|
71
|
+
|
|
72
|
+
# --- Test fixtures ------------------------------------------------------------
|
|
73
|
+
# Byte-exact text and claim-list fixtures consumed by the validators
|
|
74
|
+
# at `src/apothem/conformity/`. Validators match the fixture content against
|
|
75
|
+
# narrative-presence checks elsewhere in the tree, so injecting a
|
|
76
|
+
# banner would corrupt the byte-exact reference. Test source files
|
|
77
|
+
# (`test_*.py`, `conftest.py`) under `tests/fixtures/` carry the
|
|
78
|
+
# banner; only the data fixtures themselves are exempt.
|
|
79
|
+
tests/fixtures/**.yaml
|
|
80
|
+
tests/fixtures/**.yml
|
|
81
|
+
tests/fixtures/**.txt
|
|
82
|
+
tests/fixtures/**.json
|
|
83
|
+
|
|
84
|
+
# --- Empty-marker files -------------------------------------------------------
|
|
85
|
+
# Semantically zero-byte; banner would defeat their purpose.
|
|
86
|
+
**/.keep
|
|
87
|
+
**/.gitkeep
|
|
88
|
+
**/py.typed
|
|
89
|
+
|
|
90
|
+
# --- Machine-parseable packaging manifest --------------------------------------
|
|
91
|
+
# `.SRCINFO` is generated via `makepkg --printsrcinfo` from `PKGBUILD`. Its
|
|
92
|
+
# parser admits only `key = value` rows under `pkgbase = ...` / `pkgname = ...`
|
|
93
|
+
# stanzas and does not tolerate comment lines; injecting the banner would
|
|
94
|
+
# produce a malformed manifest.
|
|
95
|
+
**/.SRCINFO
|
|
96
|
+
|
|
97
|
+
# --- Generated / minified -----------------------------------------------------
|
|
98
|
+
# Generated files carry an upstream `Generated by ...` marker; minified
|
|
99
|
+
# bundles are derived artifacts.
|
|
100
|
+
**/*.min.js
|
|
101
|
+
**/*.min.css
|
|
102
|
+
**/generated/**
|
|
103
|
+
|
|
104
|
+
# SVG is XML, and the XML comment that would carry the single-line SPDX
|
|
105
|
+
# header cannot contain a `--` sequence, which is illegal inside an XML
|
|
106
|
+
# comment and breaks parsers. SVG assets are covered by the asset
|
|
107
|
+
# provenance README and generated raster outputs instead of an inline header.
|
|
108
|
+
**/*.svg
|
|
109
|
+
|
|
110
|
+
# --- Binary extensions --------------------------------------------------------
|
|
111
|
+
# Banners cannot be embedded in opaque byte streams.
|
|
112
|
+
**/*.png
|
|
113
|
+
**/*.jpg
|
|
114
|
+
**/*.jpeg
|
|
115
|
+
**/*.gif
|
|
116
|
+
**/*.ico
|
|
117
|
+
**/*.webp
|
|
118
|
+
**/*.pdf
|
|
119
|
+
**/*.zip
|
|
120
|
+
**/*.tar
|
|
121
|
+
**/*.gz
|
|
122
|
+
**/*.tgz
|
|
123
|
+
**/*.7z
|
|
124
|
+
**/*.rar
|
|
125
|
+
**/*.exe
|
|
126
|
+
**/*.dll
|
|
127
|
+
**/*.so
|
|
128
|
+
**/*.dylib
|
|
129
|
+
**/*.bin
|
|
130
|
+
**/*.pyc
|
|
131
|
+
**/*.pyo
|
|
132
|
+
**/*.woff
|
|
133
|
+
**/*.woff2
|
|
134
|
+
**/*.ttf
|
|
135
|
+
**/*.otf
|
|
136
|
+
**/*.eot
|
|
137
|
+
**/*.mp3
|
|
138
|
+
**/*.mp4
|
|
139
|
+
**/*.webm
|
|
140
|
+
**/*.mov
|
|
141
|
+
**/*.avi
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
# schemas/header-visibility.yaml
|
|
4
|
+
#
|
|
5
|
+
# Per-file-class visibility policy for the authorship-header banner
|
|
6
|
+
# in Markdown files, per spec §4.6.5.
|
|
7
|
+
#
|
|
8
|
+
# - `invisible` (default): banner wrapped in `<!-- ... -->`, source-visible
|
|
9
|
+
# only; the rendered Markdown surface stays clean.
|
|
10
|
+
# - `visible`: banner appears at the top of the rendered output as a
|
|
11
|
+
# plain text or fenced-code block; appropriate for stand-alone
|
|
12
|
+
# reference documents that benefit from immediately readable provenance.
|
|
13
|
+
# - `special-rendered`: format-bound files (e.g., CHANGELOG.md per
|
|
14
|
+
# release-notes format) where the banner sits as a single
|
|
15
|
+
# HTML-comment block above the format header rather than being
|
|
16
|
+
# interleaved into the format body.
|
|
17
|
+
#
|
|
18
|
+
# An override at file scope is permitted with an inline marker
|
|
19
|
+
# `<!-- header-visibility: visible -->` immediately after the banner;
|
|
20
|
+
# the inline marker takes precedence over the per-class default.
|
|
21
|
+
#
|
|
22
|
+
# Authored at the fixture-and-injector sub-phase per the locked
|
|
23
|
+
# banner-ratification policy; consumed by the injector
|
|
24
|
+
# (`scripts/inject-header.{sh,py}`) when rendering Markdown variants.
|
|
25
|
+
|
|
26
|
+
default-visibility: invisible
|
|
27
|
+
|
|
28
|
+
class-overrides:
|
|
29
|
+
- class: spec-document
|
|
30
|
+
visibility: visible
|
|
31
|
+
pattern: "**/spec*.md"
|
|
32
|
+
|
|
33
|
+
- class: changelog
|
|
34
|
+
visibility: special-rendered
|
|
35
|
+
pattern: "**/CHANGELOG.md"
|
|
36
|
+
|
|
37
|
+
- class: license-readable
|
|
38
|
+
visibility: visible
|
|
39
|
+
pattern: "**/LICENSE.md"
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://apothem.ahmedgad.com/schemas/learning-signal.schema.json",
|
|
4
|
+
"title": "Apothem Learning Signal",
|
|
5
|
+
"description": "One captured signal in the opt-in continuous-learning loop. A signal is the raw observation the capture stage records when the operator has opted in; the extraction stage scores patterns over a set of signals. The shape is neutral: it carries no tool-specific or vendor-specific identifier.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["id", "kind", "summary", "captured"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1,
|
|
13
|
+
"description": "Stable signal identifier, unique within a learning store."
|
|
14
|
+
},
|
|
15
|
+
"kind": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["correction", "confirmation", "observation"],
|
|
18
|
+
"description": "Signal taxonomy. correction: an operator corrected an action. confirmation: an operator confirmed an approach. observation: a recurring pattern noticed in the work."
|
|
19
|
+
},
|
|
20
|
+
"summary": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"minLength": 1,
|
|
23
|
+
"description": "One-line statement of what was observed."
|
|
24
|
+
},
|
|
25
|
+
"tags": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"items": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1
|
|
30
|
+
},
|
|
31
|
+
"description": "Tags used to group related signals during pattern extraction.",
|
|
32
|
+
"default": []
|
|
33
|
+
},
|
|
34
|
+
"payload": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"description": "Free-form structured detail accompanying the signal.",
|
|
37
|
+
"additionalProperties": true,
|
|
38
|
+
"default": {}
|
|
39
|
+
},
|
|
40
|
+
"captured": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"format": "date-time",
|
|
43
|
+
"description": "ISO 8601 timestamp the signal was captured."
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://apothem.ahmedgad.com/schemas/memory-record.schema.json",
|
|
4
|
+
"title": "Apothem Memory Record",
|
|
5
|
+
"description": "One durable, agnostic, operator-portable knowledge record in the memory surface. The record shape is neutral: it carries no tool-specific or vendor-specific identifier, so the same record round-trips between any two installation targets without loss. A record captures a stable fact, convention, preference, insight, or reference worth preserving across sessions.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["id", "title", "body", "kind", "created"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1,
|
|
13
|
+
"description": "Stable record identifier, unique within a memory store."
|
|
14
|
+
},
|
|
15
|
+
"title": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"description": "One-line summary used to decide relevance during recall."
|
|
19
|
+
},
|
|
20
|
+
"body": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"minLength": 1,
|
|
23
|
+
"description": "The knowledge itself, stated specifically."
|
|
24
|
+
},
|
|
25
|
+
"kind": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["fact", "convention", "preference", "insight", "reference"],
|
|
28
|
+
"description": "Record taxonomy. fact: a stable observed truth. convention: a ratified practice. preference: an operator-stated choice. insight: a derived lesson. reference: a pointer to an external resource."
|
|
29
|
+
},
|
|
30
|
+
"tags": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"minLength": 1
|
|
35
|
+
},
|
|
36
|
+
"description": "Discovery tags for recall filtering.",
|
|
37
|
+
"default": []
|
|
38
|
+
},
|
|
39
|
+
"created": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"format": "date-time",
|
|
42
|
+
"description": "ISO 8601 timestamp the record was first written."
|
|
43
|
+
},
|
|
44
|
+
"updated": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"format": "date-time",
|
|
47
|
+
"description": "ISO 8601 timestamp the record was last amended."
|
|
48
|
+
},
|
|
49
|
+
"source": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1,
|
|
52
|
+
"description": "Provenance — where the knowledge came from (a session, a document, an operator statement)."
|
|
53
|
+
},
|
|
54
|
+
"confidence": {
|
|
55
|
+
"type": "number",
|
|
56
|
+
"minimum": 0,
|
|
57
|
+
"maximum": 1,
|
|
58
|
+
"description": "Optional confidence in the record's accuracy, in the closed interval [0, 1]."
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://apothem.ahmedgad.com/schemas/output-style.schema.json",
|
|
4
|
+
"title": "Output-style",
|
|
5
|
+
"description": "Frontmatter schema for output-style definitions under src/apothem/output-styles/. The required floor is name + description, matching the mechanical floor the conformity grep enforces on every cohort file; id, applies-to, version, and last-reviewed are optional extensions.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "description"],
|
|
8
|
+
"additionalProperties": true,
|
|
9
|
+
"properties": {
|
|
10
|
+
"id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Stable kebab-case identifier for the output style.",
|
|
13
|
+
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
|
|
14
|
+
},
|
|
15
|
+
"name": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Human-readable style name shown in /output-style."
|
|
18
|
+
},
|
|
19
|
+
"description": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "One- to two-sentence statement of the style's tone, format, and intended use."
|
|
22
|
+
},
|
|
23
|
+
"applies-to": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": { "type": "string" },
|
|
26
|
+
"description": "Artifact classes or contexts the style applies to."
|
|
27
|
+
},
|
|
28
|
+
"version": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "SemVer version of the output-style definition.",
|
|
31
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
|
32
|
+
},
|
|
33
|
+
"last-reviewed": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "ISO 8601 date of last human review.",
|
|
36
|
+
"format": "date",
|
|
37
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|