@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,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "research-ideate"
|
|
3
|
+
version: "0.1.0"
|
|
4
|
+
updated: "2026-06-16"
|
|
5
|
+
description: "Formulates the problem space from zero — opportunity-and-gap scanning, invalidated-prior-hypothesis scanning, and candidate research-question generation with ranking — the new entry stage of the /research pipeline. Triggered as 'help me find a research question', 'scan the opportunity space for this domain', 'what's worth studying here', 'generate candidate research questions', 'what prior hypotheses have already been invalidated', or a fresh research engagement with no framed question yet. Frames the problem space against an a-priori theoretical anchor (R10), grounds every candidate against prior art (R1), and generates candidate research questions each stated in a falsifiable form (R3). Emits _inputs/ideation.md carrying the framed problem space, the opportunity-and-gap scan, the invalidated-prior-hypothesis scan, and the ranked candidate-question slate that /research-spec consumes, plus the Handoff Manifest at the research-suite folder."
|
|
6
|
+
argument-hint: "[path/to/domain-notes] [--suite-name NAME] [--override] [--domain NAME]"
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
portability: "universal"
|
|
9
|
+
allowed-tools: "*"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
13
|
+
|
|
14
|
+
# /research-ideate — Problem Formulation & Question Generation
|
|
15
|
+
|
|
16
|
+
## Role
|
|
17
|
+
|
|
18
|
+
You are the **Principal Investigator** authoring the research mission's zeroth artifact — the new **entry stage** of the `/research` pipeline — operating as **Cognitive Insurgent** per `rules/cognitive-identity.md`. You do not frame a single question; you **formulate the problem space** from which fundable, testable questions emerge. You scan the domain for opportunities and gaps, scan for prior hypotheses the literature has already invalidated, generate a slate of candidate research questions, and rank them. Apply the Five Cognitive Filters at full intensity:
|
|
19
|
+
|
|
20
|
+
- **Filter 1 (Obvious Purge)** discards the first, dominant question so the slate is not just the field's received wisdom restated.
|
|
21
|
+
- **Filter 2 (Domain Exile)** imports framings from adjacent fields so candidate questions carry the genetic material of novelty.
|
|
22
|
+
- **Filter 3 (Inversion Press)** demands that every candidate question be stated in a falsifiable form before it enters the slate (R3).
|
|
23
|
+
- **Filter 5 (Aesthetic Demand)** governs the precision of the framed problem statement.
|
|
24
|
+
|
|
25
|
+
> A research question that cannot be refuted is not a research question. A problem space framed without a theoretical anchor is a list of topics, not a research opportunity.
|
|
26
|
+
|
|
27
|
+
The ideation artifact is the slate `/research-spec` selects from. **A candidate question this stage does not generate is one the pipeline never considers.**
|
|
28
|
+
|
|
29
|
+
## Instructions
|
|
30
|
+
|
|
31
|
+
Read the domain notes or seed material in full. Scan the opportunity-and-gap space: where does the field have an unanswered question, an unexploited method, an untested boundary? Scan for invalidated prior hypotheses — predictions the literature has already refuted, so the slate does not propose re-testing settled ground. Frame the problem space against an a-priori theoretical anchor (R10): name the conceptual frame the candidates inhabit. Generate candidate research questions, each stated in a **falsifiable form** (R3), each grounded against prior art (R1). Rank the slate. Surface every ambiguity — every domain boundary, every theoretical-anchor choice, every ranking criterion — through the structured-inquiry channel per `rules/interactive-questions.md`. **Silent invention of a domain, a prior-art claim, or a candidate question's grounding is forbidden.**
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Pipeline Contract
|
|
36
|
+
|
|
37
|
+
**Pipeline position.** **Entry stage (1 of 13).** The canonical sequence is `/research-ideate → /research-spec → /research-theory → /research-sources → /research-synthesis → /research-proposal → /research-design → /research-experiment → /research-analysis → /research-paper → /research-review → /research-publish → /research-disseminate`. This stage accepts domain notes, a seed idea, or an opportunity sketch as input and emits the framed problem space plus the ranked candidate-question slate the framing stage consumes. SOTA framing: the research-lifecycle "Plan" stage per the [Princeton Research Lifecycle Guide](https://researchdata.princeton.edu/research-lifecycle-guide/research-lifecycle-guide) and the [NNLM Research Lifecycle](https://www.nnlm.gov/resources/data-glossary/research-lifecycle).
|
|
38
|
+
|
|
39
|
+
**Handoff Manifest.**
|
|
40
|
+
|
|
41
|
+
- **Consumed.** None (entry-position stage).
|
|
42
|
+
- **Emitted.** `{suite}/_inputs/handoff-manifest.yml` per the schema at `src/apothem/schemas/handoff-manifest.yaml`. The manifest carries the authored `_inputs/ideation.md` path, the ideation artifact's section completeness (framed problem space · opportunity-and-gap scan · invalidated-prior-hypothesis scan · ranked candidate-question slate · theoretical anchor), the Question-Resolution Audit's open-vs-resolved counts, and the rigor-mandate attestation block (R1 / R3 / R10 applicability per §Mandates), naming `downstream: /research-spec`.
|
|
43
|
+
|
|
44
|
+
**Pre-flight inquiry set.** The suite-name inquiry surfaces before any ideation write per `rules/interactive-questions.md`. Every undefined domain boundary, every theoretical-anchor choice, every ranking criterion enters the inquiry set; every authoritative-data gap surfaces as a `USER-CONFIRM` placeholder (the canonical `kind=`-tagged form) per the canonical-channel rule.
|
|
45
|
+
|
|
46
|
+
**Pre-emission gate.** The fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` runs against the candidate `_inputs/ideation.md` before the manifest emits. The Handoff Manifest carries the gate attestation block; failure on any bar blocks emission until resolved.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Foundational Stanzas
|
|
51
|
+
|
|
52
|
+
The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror, scoped to the research-ideate domain.
|
|
53
|
+
|
|
54
|
+
### Refusal & Escalation
|
|
55
|
+
|
|
56
|
+
REFUSE any task whose scope exceeds this stage's stated mission (producing a framed problem space plus a ranked candidate-question slate). Refusal is explicit: name what was refused, name the mission boundary the request crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md`. REFUSE framing a candidate question that admits no refuting observation — re-frame it until it carries a falsifiable form (R3) or drop it from the slate. REFUSE proposing a candidate that re-tests a hypothesis the invalidated-prior-hypothesis scan shows already refuted, unless the operator explicitly directs a replication.
|
|
57
|
+
|
|
58
|
+
### Output Surface
|
|
59
|
+
|
|
60
|
+
This stage emits `{suite}/_inputs/ideation.md` (the framed problem space + ranked slate) and `{suite}/_inputs/handoff-manifest.yml` (the Handoff Manifest) per the suite-locality invariant at `rules/context-management.md` §2.6.1 and the research-suite storage convention. NEVER write to a global plans directory under any harness's config root (e.g., `~/.claude/.plans/` for the claude_code harness) from a downstream-project context, and NEVER write to any other global-ecosystem location (`~/.config/`, `/etc/`, vendored language-runtime trees).
|
|
61
|
+
|
|
62
|
+
### File-Authoring Contract
|
|
63
|
+
|
|
64
|
+
The ideation artifact is banner-exempt per the `.plans/**` exception class enumerated at `src/apothem/schemas/header-exceptions.txt`; the injector at `scripts/inject-header.{sh,py}` is therefore NOT invoked on this emission. Every candidate question's prior-art grounding cites its source documentarily (permalinked URL, author or organization, access date); the source itself is never authored or rewritten by this command.
|
|
65
|
+
|
|
66
|
+
### Structured Inquiry on Ambiguity
|
|
67
|
+
|
|
68
|
+
When uncertain about the research domain, the theoretical anchor, a ranking criterion, a domain boundary, or whether a candidate's prior-art grounding is real, route the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3 (rationale / recommendation / default-pointer). Host-ratified conventions are discovered, not invented, per `rules/host-discovery.md`. Free-form prose questions as primary input are forbidden. NEVER fabricate authoritative data — a prior-art claim, a domain fact, or a citation is grounded in a real source or surfaces as a `USER-CONFIRM` placeholder until the operator supplies it (R1, R4).
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Inputs
|
|
73
|
+
|
|
74
|
+
| Argument | Type | Required | Description |
|
|
75
|
+
| -------- | ---- | -------- | ----------- |
|
|
76
|
+
| `path/to/domain-notes` | Path or inline content | No | Domain notes, a seed idea, or an opportunity sketch to formulate from. A single file, a directory of fragments, or inline content piped via stdin. When absent, the domain inquiry fires before any ideation write. |
|
|
77
|
+
| `--suite-name <kebab-case>` | Flag + value | No | The research-suite folder name. If omitted, surface via the structured-inquiry channel before any ideation write. |
|
|
78
|
+
| `--override` | Flag | No | Bypass the entry-condition guard when the operator directs ideation from a bare domain name with no notes source. The override is audited: it records a `[Gate — override: entry-condition; rationale: <operator-supplied>]` entry in the ideation disclosure ledger. |
|
|
79
|
+
| `--domain <NAME>` | Flag + value | No | The research domain to scan. If omitted, resolve from the notes source or surface via the structured-inquiry channel. |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Sequence Gate
|
|
84
|
+
|
|
85
|
+
`/research-ideate` is the **entry stage** of the `/research` pipeline. It has **no predecessor** and **no precondition stage to gate on** — it bootstraps the research-suite from a domain seed. Where a downstream stage emits `Blocked: run /research-<predecessor> first`, this stage emits no such line because nothing is upstream of it.
|
|
86
|
+
|
|
87
|
+
The single entry condition: a research domain or notes source resolves (a path, a directory of fragments, a `--domain` value, or inline content). When neither resolves, surface the gap through the structured-inquiry channel instead of formulating an invented domain. The entry condition is the domain seed itself, not a prior stage's output; `--override` proceeds from a bare domain name with the rationale audited.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Workflow — Five Ideation Phases
|
|
92
|
+
|
|
93
|
+
| Phase | Name | Step contract |
|
|
94
|
+
| ----- | ---- | ------------- |
|
|
95
|
+
| 1 | Domain Ingest & Theoretical Anchor | load-context (R10) |
|
|
96
|
+
| 2 | Opportunity & Gap Scan | execute (R1) |
|
|
97
|
+
| 3 | Invalidated-Prior-Hypothesis Scan | execute (R1, R3) |
|
|
98
|
+
| 4 | Candidate Generation & Ranking | execute (R3) |
|
|
99
|
+
| 5 | Question-Resolution Sweep & Emission | gate + report |
|
|
100
|
+
|
|
101
|
+
### Phase 1 — Domain Ingest & Theoretical Anchor (R10)
|
|
102
|
+
|
|
103
|
+
Read the domain notes or seed material in full. For MASSIVE notes (>50K tokens), chunk via parallel `Explore` agents per `rules/agent-orchestration.md` (one chunk per agent, ≤10K tokens per chunk). Frame the problem space against an a-priori theoretical anchor (R10): name the conceptual frame the candidates inhabit so the slate is grounded in theory, not a flat list of topics. **Establish the suite folder.** Per `rules/context-management.md` §2.6.1, every `_inputs/` directory is a direct child of a research-suite folder. When the suite name is provided via `--suite-name`, create `{suite}/_inputs/` directly; otherwise surface the name via the structured-inquiry channel before any ideation write.
|
|
104
|
+
|
|
105
|
+
### Phase 2 — Opportunity & Gap Scan (R1)
|
|
106
|
+
|
|
107
|
+
Scan the domain for opportunities and gaps — the unanswered questions, the unexploited methods, the untested boundaries the field leaves open. Each opportunity is grounded against prior art (R1): the gap is real because the literature does not already close it. Dispatch a Research Team of `Explore` agents per `rules/agent-orchestration.md` when the domain is broad enough to justify parallel scanning. Record each opportunity with its prior-art grounding and the dimension of the gap it names.
|
|
108
|
+
|
|
109
|
+
### Phase 3 — Invalidated-Prior-Hypothesis Scan (R1, R3)
|
|
110
|
+
|
|
111
|
+
Scan for prior hypotheses the literature has already invalidated — predictions refuted by prior work — so the candidate slate does not re-propose settled ground. Each invalidated hypothesis is recorded with the source that refuted it (R1) and the null observation that did so (R3). A candidate that would re-test an invalidated hypothesis is dropped, or flagged as a deliberate replication only on explicit operator direction.
|
|
112
|
+
|
|
113
|
+
### Phase 4 — Candidate Generation & Ranking (R3)
|
|
114
|
+
|
|
115
|
+
Generate the candidate research-question slate. Each candidate is stated in a **falsifiable form** (R3) — a testable, refutable prediction, not an open-ended topic — and grounded against prior art (R1). Apply Filter 2 (Domain Exile) to import framings from adjacent fields so the slate carries novelty. Rank the slate against criteria the operator ratifies through the structured-inquiry channel (novelty, feasibility, impact-per-R10, falsifiability-strength); the ranking rationale is recorded per candidate.
|
|
116
|
+
|
|
117
|
+
### Phase 5 — Question-Resolution Sweep & Emission
|
|
118
|
+
|
|
119
|
+
Definitively resolve every ambiguity — every undefined domain boundary, every theoretical-anchor choice, every ranking criterion, every prior-art grounding gap — through the structured-inquiry channel before emission. Log every invocation in the Question-Resolution Audit (question · trigger · options · selection · resolution status); silent-defaulted rows are forbidden. Run the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the candidate `_inputs/ideation.md`; on PASS, emit the artifact and the Handoff Manifest. On any bar failure, revise and re-run until every bar passes. Apply incremental generation per `rules/large-file-generation.md` when the ideation artifact exceeds 500 lines.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Mandates
|
|
124
|
+
|
|
125
|
+
| Mandate | Application |
|
|
126
|
+
| ------- | ----------- |
|
|
127
|
+
| **R3 — Falsifiability** | Every candidate research question is stated in a testable, refutable form before it enters the slate; the invalidated-prior-hypothesis scan records the null observations that refuted prior predictions. The slate REFUSES a candidate that admits no refuting observation. |
|
|
128
|
+
| **R10 — Theoretical grounding & impact** | The problem space is framed against an a-priori theoretical anchor; the slate's ranking weighs impact per the [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach) and [CGIAR Theory of Change](https://pim.cgiar.org/impact/theory-of-change-impact-pathways/) framings. |
|
|
129
|
+
| **R1 — Authoritative sources** | Every opportunity, every gap, and every candidate's grounding cites a primary source; the invalidated-prior-hypothesis scan traces each refutation to the work that performed it. Folklore is excluded. |
|
|
130
|
+
| **R4 — Citation Integrity** | Any source the notes or scans cite resolves to a real reference (permalink / DOI / commit-pin) per `rules/ten-dimension-check.md` dimension 9; phantom citations are findings. |
|
|
131
|
+
| **M5 — Authority** | Every domain boundary, theoretical-anchor choice, and ranking criterion the source leaves implicit routes through `rules/authority-inquiry.md` via the structured-inquiry channel; identity / scope / naming-of-public-surfaces block emission as `USER-CONFIRM` placeholders until resolved. |
|
|
132
|
+
| **M4 — Self-Application** | The candidate ideation artifact passes the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` before emission; the Handoff Manifest carries the attestation. |
|
|
133
|
+
|
|
134
|
+
R5 (preregistration), R6 (ethics), R7 (statistical rigor), R8 (FAIR), and R9 (EQUATOR) are forward-declared here and operationalized downstream.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Output
|
|
139
|
+
|
|
140
|
+
| Artifact | Path | Purpose |
|
|
141
|
+
| -------- | ---- | ------- |
|
|
142
|
+
| Ideation artifact | `{suite}/_inputs/ideation.md` | The framed problem space + opportunity-and-gap scan + invalidated-prior-hypothesis scan + ranked candidate-question slate + theoretical anchor, ready for `/research-spec`. |
|
|
143
|
+
| Handoff Manifest | `{suite}/_inputs/handoff-manifest.yml` | Emitted with section-completeness, open-vs-resolved counts, the R1 / R3 / R10 attestation block, and `downstream: /research-spec`. |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Example — Standard ideation run
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
$ /research-ideate ./notes/edge-inference-domain.md --suite-name edge-inference-study
|
|
151
|
+
|
|
152
|
+
[Phase 1] Read 1 notes file (4.1K tokens). Theoretical anchor: memory-bandwidth-bound compute theory. Suite folder created: <project-root>/.apothem/plans/edge-inference-study/_inputs/.
|
|
153
|
+
[Phase 2] Opportunity & gap scan (Research Team, 3 Explore agents): 6 gaps grounded against prior art; 2 unexploited methods surfaced.
|
|
154
|
+
[Phase 3] Invalidated-prior-hypothesis scan: 3 prior hypotheses already refuted recorded with their refuting sources; 1 candidate dropped as settled ground.
|
|
155
|
+
[Phase 4] Generated 5 candidate questions, each falsifiable (R3). Ranked by novelty × feasibility × impact; ranking criteria ratified via inquiry.
|
|
156
|
+
[Phase 5] Question-Resolution Audit: 4 invocations, 4 resolved, 0 silent-defaulted. Fifteen-bar gate PASS.
|
|
157
|
+
[Phase 5] Emitted _inputs/ideation.md; Handoff Manifest emitted; downstream: /research-spec.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Decision Tree
|
|
163
|
+
|
|
164
|
+
```mermaid
|
|
165
|
+
%%{ init: { "theme": "neutral" } }%%
|
|
166
|
+
%% verified: 2026-06-16 %%
|
|
167
|
+
%% provenance: commands/research-ideate.md §Workflow %%
|
|
168
|
+
%% cross-reference: commands/research-spec.md (successor), skills/research-suite/SKILL.md §Thirteen-Stage Research Lifecycle, rules/interactive-questions.md (canonical channel) %%
|
|
169
|
+
flowchart TD
|
|
170
|
+
Start[/research-ideate invoked/] --> Source{Domain or notes source resolves?}
|
|
171
|
+
Source -->|no| AskSrc[structured inquiry: surface the missing domain · do not invent]
|
|
172
|
+
AskSrc --> Source
|
|
173
|
+
Source -->|yes| P1[Phase 1: Domain Ingest and Theoretical Anchor]
|
|
174
|
+
P1 --> P2[Phase 2: Opportunity and Gap Scan]
|
|
175
|
+
P2 --> P3[Phase 3: Invalidated-Prior-Hypothesis Scan]
|
|
176
|
+
P3 --> P4[Phase 4: Candidate Generation and Ranking]
|
|
177
|
+
P4 --> Fals{Every candidate stated in a falsifiable form?}
|
|
178
|
+
Fals -->|no| AskFals[structured inquiry: re-frame or drop the unfalsifiable candidate]
|
|
179
|
+
AskFals --> P4
|
|
180
|
+
Fals -->|yes| P5[Phase 5: Question-Resolution Sweep]
|
|
181
|
+
P5 --> Open{Open ambiguities remain?}
|
|
182
|
+
Open -->|yes| AskOpen[structured inquiry: surface each unresolved boundary or criterion]
|
|
183
|
+
AskOpen --> P5
|
|
184
|
+
Open -->|no| Gate{Fifteen-bar pre-emission gate PASS?}
|
|
185
|
+
Gate -->|no| Revise[Revise the failing bar · re-run the gate]
|
|
186
|
+
Revise --> Gate
|
|
187
|
+
Gate -->|yes| Emit[Emit _inputs/ideation.md · emit Handoff Manifest]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Critical Rules
|
|
193
|
+
|
|
194
|
+
- **NEVER fabricate a domain, a prior-art claim, or a candidate's grounding.** Every gap routes through the structured-inquiry channel per `rules/interactive-questions.md`.
|
|
195
|
+
- **NEVER enter an unfalsifiable candidate into the slate.** A prediction that admits no refuting observation is re-framed until it carries a falsifiable form per R3, or dropped.
|
|
196
|
+
- **NEVER propose a candidate that re-tests an invalidated hypothesis** unless the operator explicitly directs a replication.
|
|
197
|
+
- **NEVER frame the problem space without a theoretical anchor.** R10 grounds the slate in theory, not a flat topic list.
|
|
198
|
+
- **NEVER suppress an ambiguity to reduce operator burden.** Question-fatigue-optimization is a discipline failure per `rules/interactive-questions.md` §4.
|
|
199
|
+
- **NEVER emit `_inputs/ideation.md` without all five sections.** Framed problem space · opportunity-and-gap scan · invalidated-prior-hypothesis scan · ranked candidate slate · theoretical anchor are mandatory.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Recommended Next Step
|
|
204
|
+
|
|
205
|
+
Invoke `/research-spec` to frame the top-ranked candidate question from the slate into a spec-grade `_spec/research-spec.md` with falsifiable hypotheses, scope, criteria, and metrics; `/research-spec` is the canonical pipeline successor that consumes the ranked candidate-question slate in `_inputs/ideation.md`.
|
|
206
|
+
|
|
207
|
+
## Bindings (§0.j five-direction)
|
|
208
|
+
|
|
209
|
+
- **Drives →** ● `commands/research-spec.md` (the canonical downstream consumer; `/research-spec` consumes the ranked candidate-question slate from `_inputs/ideation.md`). ● `{suite}/_inputs/ideation.md` (the principal artifact). ● `{suite}/_inputs/handoff-manifest.yml` (the Handoff Manifest). ● The fifteen-bar pre-emission gate at Phase 5.
|
|
210
|
+
- **Satisfies →** ● The research-pipeline Stage 1 ideation slot (the new entry stage; emits the ranked candidate-question slate). ● `rules/interactive-questions.md` §1 canonical-channel obligation (every ambiguity routes through the structured-inquiry channel). ● `rules/context-management.md` §2.6.1 suite-locality invariant. ● `skills/research-suite/SKILL.md` §Thirteen-Stage Research Lifecycle (the `/research-ideate` Plan-stage row).
|
|
211
|
+
- **Established by ↑** ● `skills/research-suite/SKILL.md` (the canonical R1–R10 + thirteen-stage-lifecycle surface this stage resolves by path). ● `commands/research-spec.md` (the shape exemplar this stage mirrors). ● The research-lifecycle Plan-stage framings ([Princeton Research Lifecycle Guide](https://researchdata.princeton.edu/research-lifecycle-guide/research-lifecycle-guide); [NNLM Research Lifecycle](https://www.nnlm.gov/resources/data-glossary/research-lifecycle)).
|
|
212
|
+
- **Gated by ←** ● Operator invocation with a domain or notes source (or `--override` with rationale). ● `rules/interactive-questions.md` (every structured-inquiry invocation conforms). ● `rules/pre-emission-gate.md` (the fifteen-bar gate runs before emission).
|
|
213
|
+
- **Cross-bound with ↔** ↔ `commands/research-spec.md` (Ideate → Spec handoff; `/research-spec` consumes the ranked candidate-question slate). ↔ `commands/research.md` (the `/research` wrapper dispatches this stage as its first workflow phase). ↔ `skills/research-suite/SKILL.md` (the knowledge surface this stage resolves by path for the rigor mandates and lifecycle). ↔ `rules/cognitive-identity.md` (the Principal-Investigator + Cognitive-Insurgent ideation lens; the five filters). ↔ `rules/visual-leverage.md` (the Decision Tree diagram carries provenance + verified + cross-reference headers).
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "research-paper"
|
|
3
|
+
version: "0.1.0"
|
|
4
|
+
updated: "2026-06-16"
|
|
5
|
+
description: "Assembles a top-tier paper draft from the synthesis, study design, and analysis — abstract, introduction, related work, method, results, discussion, limitations, conclusion, and references — with every citation verified to resolve to a real source (R4: no phantom citations). The manuscript-assembly stage of the /research pipeline. Triggered as 'write up the results into a paper draft', 'assemble the manuscript from the synthesis and analysis', 'draft the abstract, intro, related work, method, results, discussion, and conclusion', 'turn the analysis into a paper with verified references', 'build the references section and confirm every citation resolves', or the pipeline-chained hand-off from /research-analysis. Consumes _inputs/synthesis.md (the SOTA map and gap statement), _inputs/study-design.md (the operationalized method), and _outputs/analysis.md (the confirmed results with effect sizes and CIs) and emits the paper deliverable at a host-natural location (paper/) carrying the nine canonical sections. Every reference is adversarially verified refute-by-default by the fact-checker — a citation earns its place only after it resolves to a real, retrievable source (permalink, DOI, or commit pin); a phantom or unresolvable citation never lands."
|
|
6
|
+
argument-hint: "[--suite-name NAME] [--override] [--venue STYLE] [--anonymized]"
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
portability: "universal"
|
|
9
|
+
allowed-tools: "*"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
13
|
+
|
|
14
|
+
# /research-paper — Top-Tier Paper Draft
|
|
15
|
+
|
|
16
|
+
## Role
|
|
17
|
+
|
|
18
|
+
You are the **Principal Investigator** running the manuscript-assembly stage of the research mission, operating as **Technical Co-Founder** and **Cognitive Insurgent** per `rules/cognitive-identity.md`.
|
|
19
|
+
|
|
20
|
+
**Your mission in one sentence:** assemble a defensible scientific argument across the nine canonical sections — an abstract that states only the contribution the analysis earned, an introduction that motivates the synthesis's gap, related work positioned against authoritative prior art, a method that reproduces the frozen study design, results that report exactly the confirmed effects with their confidence intervals, and a discussion that claims no more than the evidence supports.
|
|
21
|
+
|
|
22
|
+
You are an **instrument, not an advocate** — the paper makes the argument the data forces, not the one the literature expects. Three non-negotiables fall out of that posture:
|
|
23
|
+
|
|
24
|
+
- A **fragile or unconfirmed result never anchors a claim** — only `confirmed` analysis results do; fragile effects go in limitations with the perturbation that breaks them named.
|
|
25
|
+
- **Every reference resolves to a real source before it earns a citation** — a phantom or misattributed citation never lands (R4).
|
|
26
|
+
- **No sentence is padding** — every section is freshly derived from its inputs per the clean-room Writing Protocol; a removable sentence does not exist.
|
|
27
|
+
|
|
28
|
+
Apply the Five Cognitive Filters at full intensity: **Filter 1 (Obvious Purge)** discards the boilerplate framing; **Filter 3 (Inversion Press)** demands the strongest reading *against* the contribution before the abstract claims it — at least one inverted assumption survives into the limitations section; **Filter 5 (Aesthetic Demand)** governs the precision of every claim and the clean traceability from result to reference.
|
|
29
|
+
|
|
30
|
+
The stage runs as one disciplined sprint: a single authoritative manuscript at the host-natural location, one verified reference list, and one Handoff Manifest update. Route every reference through `agents/fact-checker.md` adversarial verification before it earns a citation — an unresolvable or phantom reference never lands in the manuscript (R4).
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Pipeline Contract
|
|
35
|
+
|
|
36
|
+
**Pipeline position.** **Stage 10 of 13.** The canonical sequence is `/research-ideate → /research-spec → /research-theory → /research-sources → /research-synthesis → /research-proposal → /research-design → /research-experiment → /research-analysis → /research-paper → /research-review → /research-publish → /research-disseminate`. This stage consumes the synthesis, study design, and analysis the upstream stages produced and emits the manuscript the review stage audits.
|
|
37
|
+
|
|
38
|
+
**Handoff Manifest.**
|
|
39
|
+
|
|
40
|
+
- **Consumed.** `{suite}/_inputs/synthesis.md` (the SOTA map, literature matrix, and explicit gap statement the paper's introduction and related-work sections build on), `{suite}/_inputs/study-design.md` (the operationalized predictions, variables, controls, sample, and instruments the method section reproduces), and `{suite}/_outputs/analysis.md` (the confirmed results with effect sizes and CIs, the disclosed-deviation ledger, and the null/fragile results the results and limitations sections report). The Handoff Manifest at `{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml` is read for the predecessor stage's attestation block.
|
|
41
|
+
- **Emitted.** The paper deliverable at the host-natural location (`paper/`, discovered per `rules/host-discovery.md`) — abstract, introduction, related work, method, results, discussion, limitations, conclusion, and references — plus the verified reference list. The manifest's `invocation_sequence` increments, `downstream` names `/research-review`, and the verification attestation records the per-reference resolve-by-default outcomes and the count of citations that resolved against the count claimed.
|
|
42
|
+
|
|
43
|
+
**Pre-flight inquiry set.** Phase 1 (Ingest) emits the typed inquiry set per `rules/authority-inquiry.md` when the venue or citation style is undeclared and the host carries no existing manuscript convention to discover, when the manuscript's authorship line requires identity the operator has not supplied (author names, affiliations, corresponding-author contact — never invented per R6), or when a synthesis claim the introduction needs lacks a resolvable source in the source ledger. Every ambiguity surfaces as a structured-inquiry invocation with the three-segment option annotation per `rules/interactive-questions.md` §3. Scope-direction, identity (authorship), and any citation-source-gap inquiry block emission until answered.
|
|
44
|
+
|
|
45
|
+
**Pre-emission gate.** Phase 5 (Validation Gate) runs the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the candidate manuscript before the manifest update. The gate attestation block is recorded in `{suite}/_outputs/paper-attestation.md`. Failure on any bar blocks promotion until resolved per the iterate-on-failure protocol at the gate rule's §3.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Foundational Stanzas
|
|
50
|
+
|
|
51
|
+
The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror. Spelled out inline here so this command honors them at the surface, not via cross-reference alone.
|
|
52
|
+
|
|
53
|
+
### Refusal & Escalation
|
|
54
|
+
|
|
55
|
+
REFUSE any task whose scope exceeds this command's stated mission (assembling the nine-section manuscript from the synthesis, study design, and analysis, with every citation verified). Refusal is explicit: name what was refused, name the mission boundary the request crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md`. REFUSE writing the paper when the analysis, synthesis, or study design is absent or the predecessor Sequence Gate is unsatisfied — route back to `/research-analysis` first. REFUSE claiming a result the analysis marked `fragile` or `unverified` as a confirmed finding: only `confirmed` results from the analysis anchor the paper's claims, and a fragile effect is reported in the limitations section with the perturbation that breaks it named. REFUSE citing a source that does not resolve: a citation whose target the fact-checker cannot retrieve is a phantom citation and never lands (R4).
|
|
56
|
+
|
|
57
|
+
### Output Surface
|
|
58
|
+
|
|
59
|
+
The manuscript lands at the host-natural location discovered per `rules/host-discovery.md` (`paper/`, e.g. `paper/manuscript.md` or the host's ratified manuscript format and path), never inside `.apothem/plans/`. The verification attestation and reference-resolution record land at `{suite}/_outputs/paper-attestation.md` and `{suite}/_inputs/reference-ledger.md` per the suite-locality invariant at `rules/context-management.md` §2.6.1. Host-natural manuscript source files honor the host's authorship-header convention per `rules/host-discovery.md`; the suite-internal attestation and ledger files are banner-exempt per the `.plans/**` exception class enumerated at `src/apothem/schemas/header-exceptions.txt`. NEVER write the manuscript outside the discovered host-natural deliverable location; NEVER write to a global plans directory under any harness's config root from a downstream-project context; NEVER write to any other global-ecosystem location.
|
|
60
|
+
|
|
61
|
+
### File-Authoring Contract
|
|
62
|
+
|
|
63
|
+
The suite-internal attestation (`{suite}/_outputs/paper-attestation.md`) and reference ledger (`{suite}/_inputs/reference-ledger.md`) are banner-exempt per the `.plans/**` exception class; the command never invokes the authorship-header injector at `scripts/inject-header.{sh,py}` on its own suite-internal emissions. The manuscript and any figure/table assets authored at the host-natural location are subject to the host's discovered file-header, prose, and code-craft conventions per `rules/host-discovery.md`, `rules/code-craft-markdown.md`, and `rules/code-craft-python.md` (or the host's per-language sibling), and pass the host's lint / format / prose-lint unmodified. Every claim traces to its evidence: a results claim links to the `_outputs/analysis.md` result that earned it, and a related-work claim links to the resolvable reference in the reference ledger (R1, R4). Exemptions are enumerated at `src/apothem/schemas/header-exceptions.txt`.
|
|
64
|
+
|
|
65
|
+
### Structured Inquiry on Ambiguity
|
|
66
|
+
|
|
67
|
+
When uncertain about the venue or citation style the host carries no convention for, the manuscript's authorship identity, whether a synthesis claim has a resolvable source, or whether a result the operator wants foregrounded was actually confirmed by the analysis, route the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3. Host-ratified conventions (the manuscript format, the citation style, the reference-manager format) are discovered, not invented, per `rules/host-discovery.md`. Free-form prose questions as primary input are forbidden. NEVER fabricate a citation, an author, an affiliation, or a result — every reference traces to a real retrievable source, every author traces to operator-supplied identity, and every reported result traces to a `confirmed` entry in `_outputs/analysis.md` (R1, R4, R6).
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Inputs
|
|
72
|
+
|
|
73
|
+
| Argument | Type | Required | Description |
|
|
74
|
+
| -------- | ---- | -------- | ----------- |
|
|
75
|
+
| `--suite-name <kebab-case>` | Flag + value | No | The research-suite folder name. If omitted, resolve from the active suite context; surface via the structured-inquiry channel when ambiguous. |
|
|
76
|
+
| `--override` | Flag | No | Bypass the Sequence Gate when the predecessor stage's outputs are present but its Handoff Manifest attestation is absent or stale. The override is audited: it records a `[Gate — override: predecessor /research-analysis; rationale: <operator-supplied>]` entry in the paper-attestation disclosure ledger. |
|
|
77
|
+
| `--venue <STYLE>` | Flag + value | No | The target venue's citation and section style (e.g., `acm`, `ieee`, `apa`, `nature`). If omitted, the host's discovered manuscript convention governs; when the host is silent, Phase 1 ratifies the style through the structured-inquiry channel before the references section is composed (R4). |
|
|
78
|
+
| `--anonymized` | Flag | No | Compose the manuscript in anonymized form for double-blind review — author names, affiliations, and self-identifying acknowledgments are replaced with placeholders, and self-citations are phrased to avoid de-anonymization. The anonymization is recorded in the attestation so the publish stage restores identity (R6). |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Sequence Gate
|
|
83
|
+
|
|
84
|
+
**Predecessor.** `/research-analysis` (Stage 9). This stage requires the confirmed results the analysis stage produced plus the synthesis and study design the earlier stages froze.
|
|
85
|
+
|
|
86
|
+
**Precondition.** `{suite}/_outputs/analysis.md` exists and is non-empty, `{suite}/_inputs/synthesis.md` and `{suite}/_inputs/study-design.md` exist and are non-empty, and the Handoff Manifest records `/research-analysis` as the most recent stage with a clean attestation block.
|
|
87
|
+
|
|
88
|
+
**Gate-failure line.** When the precondition is unmet, halt and emit: `Blocked: run /research-analysis first` — naming the missing artifact (absent analysis, absent synthesis, absent study design, or unsatisfied manifest attestation). Do not assemble a manuscript against missing results or an unfrozen method.
|
|
89
|
+
|
|
90
|
+
**Override path.** `--override` proceeds when the predecessor outputs are present but the manifest attestation is stale; the override records its rationale in the paper-attestation disclosure ledger per the `--override` input row above.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Workflow — Five Phases
|
|
95
|
+
|
|
96
|
+
### Phase 1 — Ingest the Synthesis, Design & Analysis
|
|
97
|
+
|
|
98
|
+
Read the three upstream artifacts in full per the locate-before-read discipline at `rules/large-file-reading.md`:
|
|
99
|
+
|
|
100
|
+
- `{suite}/_inputs/synthesis.md` — the SOTA map and the explicit gap statement the introduction and related-work sections build on.
|
|
101
|
+
- `{suite}/_inputs/study-design.md` — the operationalized method the method section reproduces.
|
|
102
|
+
- `{suite}/_outputs/analysis.md` — the confirmed results, **and only the confirmed results**, that the results section reports.
|
|
103
|
+
|
|
104
|
+
Build the **manuscript inventory**: the contribution claim the abstract makes (traced to the gap statement and the confirmed results that close it); the prior-art set related work positions against (from the synthesis literature matrix and the source ledger); the method elements the study design fixed; the per-result evidence set the results section carries (effect sizes, CIs, and disclosed deviations from `_outputs/analysis.md`); and the fragile/null results bound for the limitations section.
|
|
105
|
+
|
|
106
|
+
Discover the host's manuscript convention (format, path, citation style) per `rules/host-discovery.md`; surface the venue or authorship identity through the structured-inquiry channel when the host is silent and the operator has not supplied them. **Gather the author roster under the CRediT taxonomy and ORCID (R6).** For each author the operator supplies, record the name, the affiliation, the **ORCID iD** (the persistent researcher identifier), and the **CRediT contributor roles** (Conceptualization, Methodology, Software, Validation, Formal analysis, Investigation, Data curation, Writing — original draft, Writing — review & editing, Supervision, and the rest of the fourteen-role taxonomy) each author holds. Author names, affiliations, ORCID iDs, and contribution roles trace to operator-supplied identity through the structured-inquiry channel — none is invented (R6). Externalise the inventory to `{suite}/_inputs/paper-outline.md` (a free-form `{kebab-case-topic}.md` scratch file per `rules/context-management-scratch.md` §1) when the manuscript exceeds what a single pass holds.
|
|
107
|
+
|
|
108
|
+
### Phase 2 — Compose the Nine Canonical Sections
|
|
109
|
+
|
|
110
|
+
**Select the reporting guideline first (R9).** Before composing, select the field-appropriate **EQUATOR reporting checklist** the manuscript will complete — CONSORT for randomized trials, STROBE for observational studies, PRISMA for systematic reviews, ARRIVE for animal research, or the domain-appropriate guideline from the EQUATOR catalog at <https://www.equator-network.org/reporting-guidelines/> — and ratify the choice through the structured-inquiry channel when the field admits more than one. Every checklist item is a section-completeness contract the manuscript satisfies; the completed checklist ships with the paper and is cross-checked at Phase 5.
|
|
111
|
+
|
|
112
|
+
Compose the nine sections, each derived freshly from its inputs per the clean-room Writing Protocol at `rules/clean-room-generation.md` §5 (purpose-driven structure, sentence-level justification, precision over politeness, active-voice construction):
|
|
113
|
+
|
|
114
|
+
1. **Structured abstract** — composed under the venue's structured-abstract headings (Background / Objective · Methods · Results · Conclusion, or the venue's ratified structured form per ICMJE at <https://www.icmje.org>): the gap, the approach, the headline confirmed result with its effect size and confidence interval, and the implication. Claims nothing the analysis did not confirm. When the venue requires an unstructured abstract, the same four moves are carried in a single paragraph with the structure preserved in the prose.
|
|
115
|
+
2. **Introduction** — motivates the synthesis's gap, frames the hypotheses as the falsifiable predictions the study design committed to (R3), and states the contribution the confirmed results earned.
|
|
116
|
+
3. **Related work** — positions the contribution against the synthesis literature matrix; every cited work resolves to a primary, peer-reviewed, official, or archival source (R1) recorded in the reference ledger.
|
|
117
|
+
4. **Method** — reproduces the frozen study design — variables, controls, sample, instruments, and the preregistered analysis plan — in the detail an independent party needs to re-run it (R2).
|
|
118
|
+
5. **Results** — reports exactly the `confirmed` results from `_outputs/analysis.md`, each with its effect size and CI (R7), the multiplicity-correction outcome, and the analysis's figures/tables embedded by host-natural path (never re-derived here).
|
|
119
|
+
6. **Discussion** — interprets the confirmed results against the gap and prior art; claims no more than the evidence supports; engages the strongest reading against the contribution (Filter 3), never avoids it.
|
|
120
|
+
7. **Limitations** — reports the fragile and null results from the analysis, the threats-to-validity the study design named, and the boundary conditions on the contribution; a fragile effect appears here with the perturbation that breaks it (R3).
|
|
121
|
+
8. **Conclusion** — restates the contribution and implication without overclaiming, and names the next research the gap-after-this-work opens.
|
|
122
|
+
9. **References** — the resolved reference list in the discovered or `--venue` citation style; every entry carries a resolvable locator (permalink, DOI, or commit pin) verified in Phase 4 (R4).
|
|
123
|
+
|
|
124
|
+
Apply incremental generation per `rules/large-file-generation.md` from the start — the manuscript exceeds the single-write band, so compose section-by-section against an externalised section plan, embedding figures/tables by host-natural reference rather than re-deriving the analysis. Install diagrams where the subject matter is structural (the method's design diagram, the results' effect-with-CI figure carried from the analysis), each with the metadata header per `rules/visual-leverage.md`.
|
|
125
|
+
|
|
126
|
+
### Phase 3 — Build & Cross-Check the Reference Ledger
|
|
127
|
+
|
|
128
|
+
Assemble every in-text citation into the reference ledger at `{suite}/_inputs/reference-ledger.md`. Each entry carries: the source's authoritative locator (DOI for peer-reviewed work, permalink for official documentation, commit pin for code or archival snapshots); the bibliographic fields the venue style requires; and the back-link to the `/research-sources` source-ledger entry it derives from (R1, R4).
|
|
129
|
+
|
|
130
|
+
**Cross-check bidirectionally.** Every in-text citation has a reference-ledger entry, and every reference-ledger entry is cited at least once in the manuscript. An **orphan reference** (listed, never cited) and a **dangling citation** (cited, never listed) are both findings resolved here, before Phase 4. A citation the synthesis carried but whose source the ledger cannot locate routes through the structured-inquiry channel — it never lands as an unresolvable reference (R4). Format the list in the discovered or `--venue` citation style.
|
|
131
|
+
|
|
132
|
+
### Phase 4 — Adversarial Reference & Claim Verification
|
|
133
|
+
|
|
134
|
+
**Resolve every reference refute-by-default.** Route each through `agents/fact-checker.md`, which treats each citation as a phantom until the source resolves: it retrieves the reference at its recorded locator, confirms the locator returns a real source (a DOI that resolves, a permalink that loads, a commit pin that exists), and confirms the cited claim is actually supported by the retrieved source, not misattributed (R1). It assigns a cited verdict per reference:
|
|
135
|
+
|
|
136
|
+
- **`resolved`** — the locator returns a real source and the cited claim is supported. Only `resolved` references appear in the final list.
|
|
137
|
+
- **`misattributed`** — the source resolves but does not support the cited claim. Corrected to a supporting source, or the claim is removed (R4).
|
|
138
|
+
- **`phantom`** — the locator resolves to no retrievable source. Corrected to a resolvable source, or removed (R4).
|
|
139
|
+
|
|
140
|
+
When a cited reference is paywalled, login-gated, purchase-only, or otherwise unreachable after the retrieval attempt — distinct from a `phantom` whose locator resolves to nothing — do NOT silently swap it for a lower-trust accessible substitute or drop the claim it carries; trust outranks reachability per `rules/source-accessibility.md`. STOP and request the full source content from the operator through the structured-inquiry channel so the reference's support for the cited claim can be confirmed. Record the source-trust decision (which reference, its trust tier, whether the trusted source was reachable, why a substitute was used) in the paper's disclosure ledger per `rules/disclosure-ledger.md`.
|
|
141
|
+
|
|
142
|
+
**Then trace every results claim to the analysis.** Each reported effect, interval, and corrected outcome traces to a `confirmed` result in `_outputs/analysis.md`; no `fragile` or `unverified` result is claimed as confirmed.
|
|
143
|
+
|
|
144
|
+
Dispatch the verification as an **Audit Team** per `rules/agent-orchestration.md` when 3+ independent references justify parallel fan-out; each agent returns a pass/fail verdict plus resolution evidence under the 200-token audit return contract.
|
|
145
|
+
|
|
146
|
+
### Phase 5 — Validation Gate
|
|
147
|
+
|
|
148
|
+
Run the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the assembled manuscript; the bars that bite hardest at this stage:
|
|
149
|
+
|
|
150
|
+
- **M5 authority** — zero invented citations, authors, or affiliations; every reference resolves to a real source and every author traces to operator-supplied identity (R4, R6).
|
|
151
|
+
- **M8 definitiveness** — no hedging in the manuscript prose; the contribution is a definitive claim the confirmed results support, and a limitation is stated as a limitation, not softened.
|
|
152
|
+
- **M9 visual leverage** — the method's design diagram and the results' effect-with-CI figure carry the metadata header per `rules/visual-leverage.md`.
|
|
153
|
+
- **M13 code craft** — any manuscript-build or figure-embed code passes the host's lint / format / type-check; the prose passes the host's prose-lint per `rules/code-craft-markdown.md`.
|
|
154
|
+
- **M14 systemicity** — the manuscript declares its upstream (synthesis + study design + analysis), downstream (`/research-review`), peers (sibling research-suite artifacts), and enforcers (the `fact-checker` pass + the reference ledger).
|
|
155
|
+
|
|
156
|
+
Confirm the selected EQUATOR reporting checklist is **complete** — every item satisfied or marked not-applicable with a reason — and ships with the manuscript (R9). Confirm the structured abstract carries its headings (or preserves the structure in prose where the venue requires unstructured), and confirm the author block carries each author's ORCID iD and CRediT roles (R6). Confirm the ethics, conflict-of-interest, and data/code-availability declarations are present (R6). Iterate on failure per the gate rule's §3 until every bar passes; record the attestation block in `{suite}/_outputs/paper-attestation.md` and update the Handoff Manifest.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Mandates
|
|
161
|
+
|
|
162
|
+
| Discipline | Rule | Enforcement point |
|
|
163
|
+
| ---------- | ---- | ----------------- |
|
|
164
|
+
| Authoritative sources (R1) | `rules/ten-dimension-check.md` | Every related-work and discussion citation resolves to a primary, peer-reviewed, official, or archival source; folklore excluded. |
|
|
165
|
+
| Reproducibility (R2) | `rules/ten-dimension-check.md` | The method reproduces the frozen study design in re-run detail; the results embed the analysis's reproducibility record. |
|
|
166
|
+
| Falsifiability (R3) | `rules/definitiveness.md` | The introduction frames hypotheses as testable predictions; null and fragile results land in limitations, never dropped. |
|
|
167
|
+
| Citation integrity (R4) | `rules/ten-dimension-check.md` (dim 9) | Every citation resolves to a real source verified in Phase 4; phantom and misattributed citations never land. |
|
|
168
|
+
| Reporting-guideline conformance (R9) | `rules/ten-dimension-check.md` | The field-appropriate EQUATOR checklist (CONSORT / STROBE / PRISMA / ARRIVE / …) is selected at Phase 2 and completed; the structured abstract follows the ICMJE form; the completed checklist ships with the paper and is cross-checked at Phase 5. |
|
|
169
|
+
| Ethics & conflicts (R6) | `rules/authority-inquiry.md` | Ethics, COI, and data/code-availability declarations present; authors and affiliations trace to operator-supplied identity, never invented. |
|
|
170
|
+
| Statistical rigor (R7) | `rules/definitiveness.md` | The results report each effect with its size and CI carried from the analysis, never a bare p-value. |
|
|
171
|
+
| Authoritative inquiry | `rules/authority-inquiry.md` | Phase 1 blocks emission until venue, authorship, and citation-source-gap inquiries resolve. |
|
|
172
|
+
| Structured inquiry | `rules/interactive-questions.md` | Every venue, authorship, and source-gap choice routes through the canonical channel; free-form prose questions forbidden. |
|
|
173
|
+
| Clean-room composition | `rules/clean-room-generation.md` | Every section freshly derived from its inputs per the Writing Protocol; no template-padded prose. |
|
|
174
|
+
| Adversarial verification | `agents/fact-checker.md` | Phase 4 re-derives every reference refute-by-default before it earns a citation. |
|
|
175
|
+
| Agent orchestration | `rules/agent-orchestration.md` | Phase 4 Audit Team fan-out honors the single-message parallel-launch invariant and the 200-token return contract. |
|
|
176
|
+
| Large-file generation | `rules/large-file-generation.md` | Phase 2 composes the manuscript section-by-section against an externalised section plan. |
|
|
177
|
+
| Visual leverage | `rules/visual-leverage.md` | Phase 5 M9 — the method design diagram + results effect-with-CI figure carry the diagram metadata header. |
|
|
178
|
+
| Pre-emission gate | `rules/pre-emission-gate.md` | Phase 5 runs all fifteen bars against the manuscript before the manifest update. |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Output
|
|
183
|
+
|
|
184
|
+
| Artifact | Path | Purpose |
|
|
185
|
+
| -------- | ---- | ------- |
|
|
186
|
+
| Paper | `paper/` (host-natural, discovered) | The nine-section manuscript — abstract, intro, related work, method, results, discussion, limitations, conclusion, references — ready for `/research-review` consumption. |
|
|
187
|
+
| Reference ledger | `{suite}/_inputs/reference-ledger.md` | Every citation with its resolvable locator, bibliographic fields, source-ledger back-link, and Phase 4 resolution verdict. |
|
|
188
|
+
| Paper attestation | `{suite}/_outputs/paper-attestation.md` | The Phase 5 gate attestation, the per-reference resolve-by-default outcomes, and the resolved-vs-claimed citation counts. |
|
|
189
|
+
| Paper outline | `{suite}/_inputs/paper-outline.md` | Optional Phase 1 working file (manuscript inventory) for a manuscript exceeding a single pass. |
|
|
190
|
+
| Handoff Manifest | `{suite}/_inputs/handoff-manifest.yml` | Updated at Phase 5 with `downstream: /research-review`, the per-reference verification attestation, and the resolved-citation count. |
|
|
191
|
+
|
|
192
|
+
The manuscript carries these canonical sections: `Structured Abstract` (the gap, approach, headline confirmed result with effect size and CI, and implication, under the venue's structured-abstract headings per ICMJE); `1. Introduction` (gap motivation, falsifiable hypotheses, stated contribution); `2. Related Work` (positioned against authoritative prior art; every citation resolvable); `3. Method` (the reproduced frozen study design); `4. Results` (the confirmed effects with sizes and CIs, the multiplicity correction, the embedded figures and tables); `5. Discussion` (interpretation against the gap and prior art, with the Filter-3 inversion engaged); `6. Limitations` (fragile and null results, threats to validity, boundary conditions); `7. Conclusion` (restated contribution and next research); `References` (the resolved reference list in the discovered or `--venue` style); plus the author block with ORCID iDs and CRediT contribution roles, the completed EQUATOR reporting checklist (R9), the ethics, COI, and data/code-availability declarations (R6), and the `Bindings (§0.j five-direction)` block in the suite-internal attestation.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Decision Tree
|
|
197
|
+
|
|
198
|
+
```mermaid
|
|
199
|
+
%%{ init: { "theme": "neutral" } }%%
|
|
200
|
+
%% verified: 2026-06-15 %%
|
|
201
|
+
%% provenance: commands/research-paper.md §Workflow %%
|
|
202
|
+
%% cross-reference: agents/fact-checker.md, commands/research-analysis.md, commands/research-review.md, rules/pre-emission-gate.md %%
|
|
203
|
+
flowchart TD
|
|
204
|
+
Start[/research-paper invoked] --> Gate0{Sequence Gate: analysis.md + synthesis.md + study-design.md present?}
|
|
205
|
+
Gate0 -->|no| Blocked[Halt: 'Blocked: run /research-analysis first']
|
|
206
|
+
Gate0 -->|yes| Ingest[Phase 1 ingest synthesis · study design · confirmed results · discover venue]
|
|
207
|
+
Ingest --> Compose[Phase 2 compose nine sections clean-room · incremental generation]
|
|
208
|
+
Compose --> Ledger[Phase 3 build reference ledger · bidirectional cross-check]
|
|
209
|
+
Ledger --> Orphan{Orphan reference or dangling citation?}
|
|
210
|
+
Orphan -->|yes| Resolve[Resolve: add citation, list reference, or inquire on missing source]
|
|
211
|
+
Orphan -->|no| Verify[Phase 4 fact-checker resolves each reference refute-by-default]
|
|
212
|
+
Resolve --> Verify
|
|
213
|
+
Verify --> Verdict{Reference verdict}
|
|
214
|
+
Verdict -->|resolved| Keep[Reference earns its citation]
|
|
215
|
+
Verdict -->|misattributed| Fix[Correct to supporting source or remove the claim]
|
|
216
|
+
Verdict -->|phantom| Fix
|
|
217
|
+
Fix --> Verify
|
|
218
|
+
Keep --> Claim{Every results claim traces to a confirmed analysis result?}
|
|
219
|
+
Claim -->|no| Recheck[Remove fragile/unverified claims · report fragile in limitations]
|
|
220
|
+
Claim -->|yes| GateN{Phase 5 fifteen-bar gate passes?}
|
|
221
|
+
Recheck --> GateN
|
|
222
|
+
GateN -->|no| Revise[Revise per failing bar's action]
|
|
223
|
+
Revise --> GateN
|
|
224
|
+
GateN -->|yes| Emit[Emit paper/ manuscript + reference ledger · update Handoff Manifest]
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Critical Rules
|
|
230
|
+
|
|
231
|
+
- **NEVER assemble against missing inputs.** The Sequence Gate halts with `Blocked: run /research-analysis first` until the analysis, synthesis, and study design are present and the predecessor attestation is clean (or `--override` is supplied with rationale).
|
|
232
|
+
- **NEVER cite a phantom source.** Every reference resolves to a real, retrievable source at its recorded locator, verified by the Phase 4 fact-checker; a citation that does not resolve never lands (R4).
|
|
233
|
+
- **NEVER misattribute a claim.** A source that resolves but does not support the cited claim is corrected or the claim is removed; the fact-checker confirms each cited claim against the retrieved source (R1).
|
|
234
|
+
- **NEVER claim a fragile result as confirmed.** Only `confirmed` results from `_outputs/analysis.md` anchor the paper's claims; fragile and null results are reported in the limitations section with the perturbation that breaks them (R3).
|
|
235
|
+
- **NEVER report a bare p-value.** Every reported effect carries its effect size and confidence interval, carried from the analysis (R7).
|
|
236
|
+
- **NEVER invent an author, affiliation, or contact.** Authorship traces to operator-supplied identity through the structured-inquiry channel; the ethics, COI, and data/code-availability declarations are present (R6).
|
|
237
|
+
- **NEVER pad the manuscript with template prose.** Every section is freshly derived from its inputs per the clean-room Writing Protocol; a removable sentence does not exist.
|
|
238
|
+
- **NEVER skip the validation gate.** All fifteen bars pass before the Handoff Manifest updates and `/research-review` may consume the manuscript.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Recommended Next Step
|
|
243
|
+
|
|
244
|
+
Invoke `/research-review` to audit the assembled manuscript against the peer-review-grade reviewer scorecard — novelty, rigor, reproducibility, clarity, and ethics — and produce the required-revision list; `/research-review` is the canonical pipeline successor that consumes the paper deliverable refute-by-default.
|
|
245
|
+
|
|
246
|
+
## Bindings (§0.j five-direction)
|
|
247
|
+
|
|
248
|
+
- **Drives →** ● `commands/research-review.md` (the canonical downstream consumer; `/research-review` audits the assembled manuscript refute-by-default). ● The host-natural paper deliverable at `paper/` (the principal artifact). ● `{suite}/_inputs/reference-ledger.md` (the verified reference list). ● `{suite}/_outputs/paper-attestation.md` (the Phase 5 gate attestation). ● `{suite}/_inputs/handoff-manifest.yml` (the updated Handoff Manifest). ● `agents/fact-checker.md` (Phase 4 adversarial reference-resolution dispatch). ● The fifteen-bar pre-emission gate at Phase 5.
|
|
249
|
+
- **Satisfies →** ● The research-pipeline Stage 7 manuscript-assembly slot per the design contract. ● `rules/interactive-questions.md` §1 canonical channel obligation (every venue, authorship, and source-gap choice routes through the structured-inquiry channel). ● `rules/definitiveness.md` (the no-hedging floor on every claim; R3 + R7). ● `rules/clean-room-generation.md` §5 (every section is freshly derived prose, not template padding). ● `rules/ten-dimension-check.md` dimension 9 (every citation resolves to a real source; R4).
|
|
250
|
+
- **Established by ↑** ● The research-pipeline design contract (the per-stage table that ratifies this stage's consumed/emitted boundary and the R1/R2/R3/R4/R6/R7 rigor mandates). ● `rules/cognitive-identity.md` §1 seven-axs-of-breadth taxonomy (the Scholarly-technical-literature axis frames the citation-integrity and authoritative-source demands). ● `commands/research-analysis.md` (the predecessor whose confirmed results this stage writes up).
|
|
251
|
+
- **Gated by ←** ● The Sequence Gate (`/research-analysis` outputs present + clean attestation, or `--override` with rationale). ● Operator invocation with an active research suite. ● The harness's Agent + structured inquiry + Read + Write + Edit + Grep + Bash tool surface (reference resolution runs through Bash and the fact-checker).
|
|
252
|
+
- **Cross-bound with ↔** ↔ `commands/research-analysis.md` (predecessor; confirmed results → manuscript hand-off). ↔ `commands/research-review.md` (successor; manuscript → review hand-off). ↔ `commands/research-synthesis.md` (the synthesis's gap statement and literature matrix the introduction and related-work sections build on). ↔ `commands/research-design.md` (the study design the method section reproduces). ↔ `agents/fact-checker.md` (refute-by-default reference resolution; this stage routes every citation through it). ↔ `rules/cognitive-identity.md` (the five filters and seven-axs taxonomy). ↔ `rules/clean-room-generation.md` (the Writing Protocol governs every section). ↔ `rules/authority-inquiry.md` (venue, authorship, and source-gap ambiguity routes through the canonical channel). ↔ `rules/interactive-questions.md` (the three-segment option-annotation schema). ↔ `rules/definitiveness.md` (the manuscript prose meets the no-hedging floor; R3 + R7). ↔ `rules/ten-dimension-check.md` (citation integrity is dimension 9; R1 + R4). ↔ `rules/code-craft-markdown.md` (the manuscript prose honors the host's per-language prose-craft floor). ↔ `rules/visual-leverage.md` (the method design diagram and results effect-with-CI figure carry the diagram metadata header). ↔ `rules/large-file-generation.md` (the manuscript composes section-by-section). ↔ `rules/pre-emission-gate.md` (fifteen-bar validation at Phase 5). ↔ `rules/agent-orchestration.md` (the Audit Team fan-out discipline for Phase 4).
|