maxwellai-froid 6.11.0
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/LICENSE +30 -0
- package/README.md +89 -0
- package/froid-modules.yaml +134 -0
- package/package.json +133 -0
- package/src/core-skills/froid-advanced-elicitation/SKILL.md +64 -0
- package/src/core-skills/froid-advanced-elicitation/assets/methods.csv +72 -0
- package/src/core-skills/froid-advanced-elicitation/customize.toml +54 -0
- package/src/core-skills/froid-advanced-elicitation/scripts/pick_methods.py +233 -0
- package/src/core-skills/froid-advanced-elicitation/scripts/tests/test_pick_methods.py +228 -0
- package/src/core-skills/froid-brainstorming/SKILL.md +80 -0
- package/src/core-skills/froid-brainstorming/assets/brain-icons.json +166 -0
- package/src/core-skills/froid-brainstorming/assets/brain-methods.csv +109 -0
- package/src/core-skills/froid-brainstorming/assets/brain-selector.html +328 -0
- package/src/core-skills/froid-brainstorming/customize.toml +83 -0
- package/src/core-skills/froid-brainstorming/references/converge.md +24 -0
- package/src/core-skills/froid-brainstorming/references/finalize.md +26 -0
- package/src/core-skills/froid-brainstorming/references/headless.md +54 -0
- package/src/core-skills/froid-brainstorming/references/in-chat-techniques.md +18 -0
- package/src/core-skills/froid-brainstorming/references/mode-autonomous.md +10 -0
- package/src/core-skills/froid-brainstorming/references/mode-facilitator.md +11 -0
- package/src/core-skills/froid-brainstorming/references/mode-partner.md +16 -0
- package/src/core-skills/froid-brainstorming/references/resume.md +5 -0
- package/src/core-skills/froid-brainstorming/scripts/brain.py +789 -0
- package/src/core-skills/froid-brainstorming/scripts/tests/test_brain.py +289 -0
- package/src/core-skills/froid-customize/SKILL.md +111 -0
- package/src/core-skills/froid-customize/scripts/list_customizable_skills.py +231 -0
- package/src/core-skills/froid-customize/scripts/tests/test_list_customizable_skills.py +249 -0
- package/src/core-skills/froid-deep-recon/SKILL.md +82 -0
- package/src/core-skills/froid-deep-recon/assets/research.template.md +18 -0
- package/src/core-skills/froid-deep-recon/customize.toml +212 -0
- package/src/core-skills/froid-deep-recon/references/draft.md +8 -0
- package/src/core-skills/froid-deep-recon/references/finalize.md +11 -0
- package/src/core-skills/froid-deep-recon/references/html-briefing.md +16 -0
- package/src/core-skills/froid-deep-recon/references/lifecycle.md +11 -0
- package/src/core-skills/froid-deep-recon/references/process.md +10 -0
- package/src/core-skills/froid-deep-recon/references/run.md +73 -0
- package/src/core-skills/froid-deep-recon/references/selection.md +13 -0
- package/src/core-skills/froid-deep-recon/references/synthesis.md +16 -0
- package/src/core-skills/froid-deep-recon/references/verification.md +29 -0
- package/src/core-skills/froid-deep-recon/scripts/recon_kit.py +322 -0
- package/src/core-skills/froid-deep-recon/scripts/tests/test_recon_kit.py +144 -0
- package/src/core-skills/froid-deep-recon/types/academic-lit.md +19 -0
- package/src/core-skills/froid-deep-recon/types/competitive.md +19 -0
- package/src/core-skills/froid-deep-recon/types/domain.md +19 -0
- package/src/core-skills/froid-deep-recon/types/market.md +19 -0
- package/src/core-skills/froid-deep-recon/types/technical.md +19 -0
- package/src/core-skills/froid-deep-recon/types/user-voice.md +19 -0
- package/src/core-skills/froid-forge-idea/SKILL.md +107 -0
- package/src/core-skills/froid-forge-idea/customize.toml +41 -0
- package/src/core-skills/froid-forge-idea/scripts/resolve_personas.py +275 -0
- package/src/core-skills/froid-forge-idea/scripts/tests/test_resolve_personas.py +138 -0
- package/src/core-skills/froid-help/SKILL.md +77 -0
- package/src/core-skills/froid-party-mode/SKILL.md +60 -0
- package/src/core-skills/froid-party-mode/customize.toml +211 -0
- package/src/core-skills/froid-party-mode/references/create-party.md +70 -0
- package/src/core-skills/froid-party-mode/references/mode-agent-team.md +13 -0
- package/src/core-skills/froid-party-mode/references/mode-auto.md +13 -0
- package/src/core-skills/froid-party-mode/references/mode-subagent.md +31 -0
- package/src/core-skills/froid-party-mode/references/party-memory.md +51 -0
- package/src/core-skills/froid-party-mode/scripts/resolve_party.py +282 -0
- package/src/core-skills/froid-party-mode/scripts/tests/test_resolve_party.py +146 -0
- package/src/core-skills/froid-review/SKILL.md +50 -0
- package/src/core-skills/froid-review/customize.toml +141 -0
- package/src/core-skills/froid-review/references/editorial-common.md +56 -0
- package/src/core-skills/froid-review/references/lens-adversarial.md +19 -0
- package/src/core-skills/froid-review/references/lens-edge-case-hunter.md +70 -0
- package/src/core-skills/froid-review/references/lens-prose.md +7 -0
- package/src/core-skills/froid-review/references/lens-structure.md +9 -0
- package/src/core-skills/froid-review/references/lens-verification-gap.md +92 -0
- package/src/core-skills/froid-review/references/structure-models.md +44 -0
- package/src/core-skills/froid-review/scripts/tests/test_word_metrics.py +62 -0
- package/src/core-skills/froid-review/scripts/word_metrics.py +102 -0
- package/src/core-skills/module-help.csv +10 -0
- package/src/core-skills/module.yaml +38 -0
- package/src/core-skills/v6-shims/README.md +25 -0
- package/src/core-skills/v6-shims/froid-editorial-review/SKILL.md +8 -0
- package/src/core-skills/v6-shims/froid-editorial-review/customize.toml +31 -0
- package/src/core-skills/v6-shims/froid-editorial-review-prose/SKILL.md +8 -0
- package/src/core-skills/v6-shims/froid-editorial-review-structure/SKILL.md +8 -0
- package/src/core-skills/v6-shims/froid-review-adversarial-general/SKILL.md +8 -0
- package/src/core-skills/v6-shims/froid-review-edge-case-hunter/SKILL.md +8 -0
- package/src/core-skills/v6-shims/froid-review-verification-gap/SKILL.md +8 -0
- package/src/froid-skills/agents/froid-agent-analyst/SKILL.md +76 -0
- package/src/froid-skills/agents/froid-agent-analyst/customize.toml +103 -0
- package/src/froid-skills/agents/froid-agent-architect/SKILL.md +76 -0
- package/src/froid-skills/agents/froid-agent-architect/customize.toml +63 -0
- package/src/froid-skills/agents/froid-agent-dev/SKILL.md +76 -0
- package/src/froid-skills/agents/froid-agent-dev/customize.toml +81 -0
- package/src/froid-skills/agents/froid-agent-pm/SKILL.md +76 -0
- package/src/froid-skills/agents/froid-agent-pm/customize.toml +73 -0
- package/src/froid-skills/agents/froid-agent-ux-designer/SKILL.md +76 -0
- package/src/froid-skills/agents/froid-agent-ux-designer/customize.toml +58 -0
- package/src/froid-skills/module-help.csv +19 -0
- package/src/froid-skills/module.yaml +85 -0
- package/src/froid-skills/plan/froid-architecture/SKILL.md +85 -0
- package/src/froid-skills/plan/froid-architecture/assets/spine-template.md +79 -0
- package/src/froid-skills/plan/froid-architecture/customize.toml +101 -0
- package/src/froid-skills/plan/froid-architecture/references/headless.md +26 -0
- package/src/froid-skills/plan/froid-architecture/references/reviewer-gate.md +13 -0
- package/src/froid-skills/plan/froid-architecture/scripts/lint_spine.py +257 -0
- package/src/froid-skills/plan/froid-architecture/scripts/tests/test_lint_spine.py +270 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/SKILL.md +93 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/customize.toml +39 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/steps/step-01-validate-prerequisites.md +263 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/steps/step-02-design-epics.md +242 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/steps/step-04-final-validation.md +143 -0
- package/src/froid-skills/plan/froid-create-epics-and-stories/templates/epics-template.md +61 -0
- package/src/froid-skills/plan/froid-generate-project-context/SKILL.md +12 -0
- package/src/froid-skills/plan/froid-prd/SKILL.md +94 -0
- package/src/froid-skills/plan/froid-prd/assets/headless-schemas.md +76 -0
- package/src/froid-skills/plan/froid-prd/assets/prd-template.md +165 -0
- package/src/froid-skills/plan/froid-prd/assets/prd-validation-checklist.md +135 -0
- package/src/froid-skills/plan/froid-prd/assets/validation-report-template.html +325 -0
- package/src/froid-skills/plan/froid-prd/customize.toml +148 -0
- package/src/froid-skills/plan/froid-prd/references/headless.md +39 -0
- package/src/froid-skills/plan/froid-prd/references/validate.md +97 -0
- package/src/froid-skills/plan/froid-prfaq/SKILL.md +135 -0
- package/src/froid-skills/plan/froid-prfaq/agents/artifact-analyzer.md +60 -0
- package/src/froid-skills/plan/froid-prfaq/agents/web-researcher.md +49 -0
- package/src/froid-skills/plan/froid-prfaq/assets/prfaq-template.md +62 -0
- package/src/froid-skills/plan/froid-prfaq/customize.toml +39 -0
- package/src/froid-skills/plan/froid-prfaq/froid-manifest.json +16 -0
- package/src/froid-skills/plan/froid-prfaq/references/customer-faq.md +55 -0
- package/src/froid-skills/plan/froid-prfaq/references/internal-faq.md +51 -0
- package/src/froid-skills/plan/froid-prfaq/references/press-release.md +60 -0
- package/src/froid-skills/plan/froid-prfaq/references/verdict.md +83 -0
- package/src/froid-skills/plan/froid-product-brief/SKILL.md +91 -0
- package/src/froid-skills/plan/froid-product-brief/assets/brief-template.md +41 -0
- package/src/froid-skills/plan/froid-product-brief/customize.toml +100 -0
- package/src/froid-skills/plan/froid-project-context/SKILL.md +121 -0
- package/src/froid-skills/plan/froid-project-context/customize.toml +24 -0
- package/src/froid-skills/plan/froid-project-context/references/best-practices.md +84 -0
- package/src/froid-skills/plan/froid-project-context/references/template.md +55 -0
- package/src/froid-skills/plan/froid-spec/SKILL.md +160 -0
- package/src/froid-skills/plan/froid-spec/assets/headless-schemas.md +33 -0
- package/src/froid-skills/plan/froid-spec/assets/spec-template.md +49 -0
- package/src/froid-skills/plan/froid-spec/assets/stories-schema.md +44 -0
- package/src/froid-skills/plan/froid-spec/customize.toml +52 -0
- package/src/froid-skills/plan/froid-sprint-planning/SKILL.md +62 -0
- package/src/froid-skills/plan/froid-sprint-planning/customize.toml +39 -0
- package/src/froid-skills/plan/froid-sprint-planning/references/fix-sprint-status.md +30 -0
- package/src/froid-skills/plan/froid-sprint-planning/references/generate-tracking.md +25 -0
- package/src/froid-skills/plan/froid-sprint-planning/references/readiness-gate.md +20 -0
- package/src/froid-skills/plan/froid-sprint-planning/references/status-view.md +14 -0
- package/src/froid-skills/plan/froid-sprint-planning/references/validate.md +10 -0
- package/src/froid-skills/plan/froid-sprint-planning/scripts/sprint_plan.py +697 -0
- package/src/froid-skills/plan/froid-sprint-planning/scripts/tests/test_sprint_plan.py +524 -0
- package/src/froid-skills/plan/froid-sprint-planning/sprint-status-template.yaml +71 -0
- package/src/froid-skills/plan/froid-ux/SKILL.md +90 -0
- package/src/froid-skills/plan/froid-ux/assets/color-themes.md +9 -0
- package/src/froid-skills/plan/froid-ux/assets/design-directions.md +9 -0
- package/src/froid-skills/plan/froid-ux/assets/design-example-editorial.md +158 -0
- package/src/froid-skills/plan/froid-ux/assets/design-example-mobile.md +93 -0
- package/src/froid-skills/plan/froid-ux/assets/design-example-shadcn.md +109 -0
- package/src/froid-skills/plan/froid-ux/assets/excalidraw-wireframe.md +19 -0
- package/src/froid-skills/plan/froid-ux/assets/experience-example-mobile.md +112 -0
- package/src/froid-skills/plan/froid-ux/assets/experience-example-shadcn.md +133 -0
- package/src/froid-skills/plan/froid-ux/assets/headless-schemas.md +84 -0
- package/src/froid-skills/plan/froid-ux/assets/key-screens.md +29 -0
- package/src/froid-skills/plan/froid-ux/assets/validation-report-template.html +319 -0
- package/src/froid-skills/plan/froid-ux/customize.toml +100 -0
- package/src/froid-skills/plan/froid-ux/references/creative-tools.md +19 -0
- package/src/froid-skills/plan/froid-ux/references/design-md-spec.md +50 -0
- package/src/froid-skills/plan/froid-ux/references/headless.md +37 -0
- package/src/froid-skills/plan/froid-ux/references/validate.md +115 -0
- package/src/froid-skills/ship/froid-build/SKILL.md +13 -0
- package/src/froid-skills/ship/froid-build/compile-epic-context.md +62 -0
- package/src/froid-skills/ship/froid-build/customize.toml +161 -0
- package/src/froid-skills/ship/froid-build/references/claims-check.md +14 -0
- package/src/froid-skills/ship/froid-build/references/deletion-check.md +14 -0
- package/src/froid-skills/ship/froid-build/review-prompts/edge-case-hunter.md +110 -0
- package/src/froid-skills/ship/froid-build/review-prompts/verification-gap.md +113 -0
- package/src/froid-skills/ship/froid-build/spec-template.md +111 -0
- package/src/froid-skills/ship/froid-build/step-01-clarify-and-route.md +100 -0
- package/src/froid-skills/ship/froid-build/step-02-plan.md +62 -0
- package/src/froid-skills/ship/froid-build/step-03-implement.md +51 -0
- package/src/froid-skills/ship/froid-build/step-04-review.md +72 -0
- package/src/froid-skills/ship/froid-build/step-05-present.md +80 -0
- package/src/froid-skills/ship/froid-build/step-oneshot.md +95 -0
- package/src/froid-skills/ship/froid-build/sync-sprint-status.md +19 -0
- package/src/froid-skills/ship/froid-build/workflow.md +84 -0
- package/src/froid-skills/ship/froid-build-auto/SKILL.md +13 -0
- package/src/froid-skills/ship/froid-build-auto/compile-epic-context.md +62 -0
- package/src/froid-skills/ship/froid-build-auto/customize.toml +119 -0
- package/src/froid-skills/ship/froid-build-auto/references/claims-check.md +14 -0
- package/src/froid-skills/ship/froid-build-auto/references/deletion-check.md +14 -0
- package/src/froid-skills/ship/froid-build-auto/review-prompts/edge-case-hunter.md +110 -0
- package/src/froid-skills/ship/froid-build-auto/review-prompts/verification-gap.md +113 -0
- package/src/froid-skills/ship/froid-build-auto/spec-template.md +96 -0
- package/src/froid-skills/ship/froid-build-auto/step-01-clarify-and-route.md +83 -0
- package/src/froid-skills/ship/froid-build-auto/step-02-plan.md +27 -0
- package/src/froid-skills/ship/froid-build-auto/step-03-implement.md +48 -0
- package/src/froid-skills/ship/froid-build-auto/step-04-review.md +103 -0
- package/src/froid-skills/ship/froid-build-auto/workflow.md +104 -0
- package/src/froid-skills/ship/froid-code-review/SKILL.md +90 -0
- package/src/froid-skills/ship/froid-code-review/customize.toml +110 -0
- package/src/froid-skills/ship/froid-code-review/references/claims-check.md +14 -0
- package/src/froid-skills/ship/froid-code-review/references/deletion-check.md +14 -0
- package/src/froid-skills/ship/froid-code-review/review-prompts/edge-case-hunter.md +110 -0
- package/src/froid-skills/ship/froid-code-review/review-prompts/verification-gap.md +113 -0
- package/src/froid-skills/ship/froid-code-review/steps/step-01-gather-context.md +94 -0
- package/src/froid-skills/ship/froid-code-review/steps/step-02-review.md +32 -0
- package/src/froid-skills/ship/froid-code-review/steps/step-03-triage.md +53 -0
- package/src/froid-skills/ship/froid-code-review/steps/step-04-present.md +134 -0
- package/src/froid-skills/ship/froid-correct-course/SKILL.md +308 -0
- package/src/froid-skills/ship/froid-correct-course/checklist.md +288 -0
- package/src/froid-skills/ship/froid-correct-course/customize.toml +39 -0
- package/src/froid-skills/ship/froid-qa-generate-e2e-tests/SKILL.md +176 -0
- package/src/froid-skills/ship/froid-qa-generate-e2e-tests/checklist.md +33 -0
- package/src/froid-skills/ship/froid-qa-generate-e2e-tests/customize.toml +39 -0
- package/src/froid-skills/ship/froid-retrospective/SKILL.md +94 -0
- package/src/froid-skills/ship/froid-retrospective/customize.toml +39 -0
- package/src/froid-skills/ship/froid-retrospective/references/acceptance-verdict.md +55 -0
- package/src/froid-skills/ship/froid-retrospective/references/aggregate-views.md +17 -0
- package/src/froid-skills/ship/froid-retrospective/references/evidence-gathering.md +30 -0
- package/src/froid-skills/ship/froid-retrospective/references/retro-document.md +84 -0
- package/src/froid-skills/ship/froid-retrospective/references/team-discussion.md +22 -0
- package/src/froid-skills/ship/froid-retrospective/scripts/git_evidence.py +304 -0
- package/src/froid-skills/ship/froid-retrospective/scripts/sprint_status.py +746 -0
- package/src/froid-skills/ship/froid-retrospective/scripts/tests/fixtures/sprint-status-template.yaml +71 -0
- package/src/froid-skills/ship/froid-retrospective/scripts/tests/test_git_evidence.py +750 -0
- package/src/froid-skills/ship/froid-retrospective/scripts/tests/test_sprint_status.py +1579 -0
- package/src/froid-skills/ship/froid-walkthrough/SKILL.md +68 -0
- package/src/froid-skills/ship/froid-walkthrough/customize.toml +39 -0
- package/src/froid-skills/ship/froid-walkthrough/generate-trail.md +38 -0
- package/src/froid-skills/ship/froid-walkthrough/step-01-orientation.md +105 -0
- package/src/froid-skills/ship/froid-walkthrough/step-02-walkthrough.md +89 -0
- package/src/froid-skills/ship/froid-walkthrough/step-03-detail-pass.md +106 -0
- package/src/froid-skills/ship/froid-walkthrough/step-04-testing.md +74 -0
- package/src/froid-skills/ship/froid-walkthrough/step-05-wrapup.md +30 -0
- package/src/froid-skills/v6-shims/README.md +29 -0
- package/src/froid-skills/v6-shims/froid-checkpoint-preview/SKILL.md +21 -0
- package/src/froid-skills/v6-shims/froid-create-architecture/SKILL.md +32 -0
- package/src/froid-skills/v6-shims/froid-create-architecture/customize.toml +39 -0
- package/src/froid-skills/v6-shims/froid-create-prd/SKILL.md +32 -0
- package/src/froid-skills/v6-shims/froid-create-prd/customize.toml +39 -0
- package/src/froid-skills/v6-shims/froid-create-story/SKILL.md +436 -0
- package/src/froid-skills/v6-shims/froid-create-story/checklist.md +357 -0
- package/src/froid-skills/v6-shims/froid-create-story/customize.toml +39 -0
- package/src/froid-skills/v6-shims/froid-create-story/discover-inputs.md +88 -0
- package/src/froid-skills/v6-shims/froid-create-story/template.md +49 -0
- package/src/froid-skills/v6-shims/froid-dev-auto/SKILL.md +21 -0
- package/src/froid-skills/v6-shims/froid-dev-story/SKILL.md +504 -0
- package/src/froid-skills/v6-shims/froid-dev-story/checklist.md +80 -0
- package/src/froid-skills/v6-shims/froid-dev-story/customize.toml +39 -0
- package/src/froid-skills/v6-shims/froid-document-project/SKILL.md +16 -0
- package/src/froid-skills/v6-shims/froid-domain-research/SKILL.md +16 -0
- package/src/froid-skills/v6-shims/froid-edit-prd/SKILL.md +32 -0
- package/src/froid-skills/v6-shims/froid-edit-prd/customize.toml +40 -0
- package/src/froid-skills/v6-shims/froid-market-research/SKILL.md +16 -0
- package/src/froid-skills/v6-shims/froid-quick-dev/SKILL.md +21 -0
- package/src/froid-skills/v6-shims/froid-sprint-status/SKILL.md +28 -0
- package/src/froid-skills/v6-shims/froid-sprint-status/customize.toml +39 -0
- package/src/froid-skills/v6-shims/froid-technical-research/SKILL.md +16 -0
- package/src/froid-skills/v6-shims/froid-validate-prd/SKILL.md +32 -0
- package/src/froid-skills/v6-shims/froid-validate-prd/customize.toml +40 -0
- package/src/scripts/config_utils.py +119 -0
- package/src/scripts/memlog.py +224 -0
- package/src/scripts/render_skill.py +401 -0
- package/src/scripts/resolve_config.py +82 -0
- package/src/scripts/resolve_customization.py +99 -0
- package/src/scripts/tests/test_config_utils.py +85 -0
- package/src/scripts/tests/test_memlog.py +306 -0
- package/src/scripts/tests/test_resolve_config.py +117 -0
- package/src/scripts/tests/test_resolve_customization.py +77 -0
- package/tools/installer/README.md +60 -0
- package/tools/installer/cli-utils.js +57 -0
- package/tools/installer/commands/install.js +151 -0
- package/tools/installer/commands/status.js +65 -0
- package/tools/installer/commands/uninstall.js +167 -0
- package/tools/installer/core/config.js +76 -0
- package/tools/installer/core/existing-install.js +121 -0
- package/tools/installer/core/install-paths.js +132 -0
- package/tools/installer/core/installer.js +1823 -0
- package/tools/installer/core/legacy-warnings.js +151 -0
- package/tools/installer/core/manifest-generator.js +865 -0
- package/tools/installer/core/manifest.js +439 -0
- package/tools/installer/core/shim-policy.js +159 -0
- package/tools/installer/core/uv-check.js +195 -0
- package/tools/installer/core/wsl-node-check.js +109 -0
- package/tools/installer/file-ops.js +204 -0
- package/tools/installer/froid-cli.js +105 -0
- package/tools/installer/fs-native.js +116 -0
- package/tools/installer/ide/_config-driven.js +972 -0
- package/tools/installer/ide/manager.js +324 -0
- package/tools/installer/ide/platform-codes.js +80 -0
- package/tools/installer/ide/platform-codes.yaml +363 -0
- package/tools/installer/ide/shared/installed-skills.js +50 -0
- package/tools/installer/ide/shared/path-utils.js +219 -0
- package/tools/installer/ide/shared/skill-manifest.js +57 -0
- package/tools/installer/install-messages.yaml +37 -0
- package/tools/installer/list-options.js +210 -0
- package/tools/installer/message-loader.js +83 -0
- package/tools/installer/modules/channel-plan.js +203 -0
- package/tools/installer/modules/channel-resolver.js +241 -0
- package/tools/installer/modules/custom-module-manager.js +924 -0
- package/tools/installer/modules/external-manager.js +671 -0
- package/tools/installer/modules/git-env.js +47 -0
- package/tools/installer/modules/module-help-schema.js +13 -0
- package/tools/installer/modules/official-modules.js +2289 -0
- package/tools/installer/modules/plugin-resolver.js +398 -0
- package/tools/installer/modules/version-resolver.js +336 -0
- package/tools/installer/project-root.js +224 -0
- package/tools/installer/prompts.js +804 -0
- package/tools/installer/set-overrides.js +330 -0
- package/tools/installer/ui.js +2233 -0
- package/tools/installer/yaml-format.js +245 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 BMad Code, LLC
|
|
4
|
+
|
|
5
|
+
This project incorporates contributions from the open source community.
|
|
6
|
+
See [CONTRIBUTORS.md](CONTRIBUTORS.md) for contributor attribution.
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in all
|
|
16
|
+
copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
24
|
+
SOFTWARE.
|
|
25
|
+
|
|
26
|
+
TRADEMARK NOTICE:
|
|
27
|
+
BMad™, BMad Method™, and BMad Core™ are trademarks of BMad Code, LLC, covering all
|
|
28
|
+
casings and variations (including BMAD, bmad, BMadMethod, BMAD-METHOD, etc.). The use of
|
|
29
|
+
these trademarks in this software does not grant any rights to use the trademarks
|
|
30
|
+
for any other purpose. See [TRADEMARK.md](TRADEMARK.md) for detailed guidelines.
|
package/README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
[](https://www.npmjs.com/package/maxwellai-froid)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://discord.gg/gk8jAdXWmj)
|
|
7
|
+
|
|
8
|
+
**Agile Ai Driven Development — turn an idea or change request into working software without giving up the thinking.**
|
|
9
|
+
|
|
10
|
+
Ai Driven Development (AiDD) covers the whole effort, not only the code: what to build, how it holds together, and how it changes as you learn. MaxwellAI OS Froid is the agile way to do it — decisions stay explicit, context carries forward, and the process sizes itself to the work. Small changes go straight to build. Complex work gets the depth it needs. The same method covers a weekend prototype and a system with years of history behind it.
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
_Start anywhere. Use Froid end to end, or carry its briefs, specifications, and architecture into your existing delivery workflow._
|
|
15
|
+
|
|
16
|
+
## Start Building
|
|
17
|
+
|
|
18
|
+
**Prerequisites:** [Node.js](https://nodejs.org) 20.12+, [Python](https://www.python.org) 3.10+, and [uv](https://docs.astral.sh/uv/)
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx maxwellai-froid install
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Open your project in your AI coding tool, invoke `froid-build` with what you want to change, and keep making the decisions that matter. Run `froid-help` whenever you want guidance on what comes next or what is optional.
|
|
25
|
+
|
|
26
|
+
**[Build your first project with Froid →](https://docs.maxwellai-froid.org/start/build-your-first-change/)**
|
|
27
|
+
|
|
28
|
+
**[Add Froid to an existing codebase →](https://docs.maxwellai-froid.org/how-to/established-projects/)**
|
|
29
|
+
|
|
30
|
+
Froid is free and open source, with no paywalled workflows or gated community. For installation prerequisites, updates, prerelease builds, and the installer's live automation help, see the [installation guide](https://docs.maxwellai-froid.org/start/install-froid/).
|
|
31
|
+
|
|
32
|
+
## Why Froid?
|
|
33
|
+
|
|
34
|
+
Coding assistants are effective at implementation, but they often turn unstated assumptions into code. Froid keeps you in control while its agents and workflows make the important decisions explicit and preserve them as context for the work that follows.
|
|
35
|
+
|
|
36
|
+
- **Right-sized process** — Go directly to implementation for clear changes or add deeper planning for larger initiatives.
|
|
37
|
+
- **New or existing code** — Start from nothing, or establish verified context on a codebase you inherited and work from what is actually there.
|
|
38
|
+
- **Durable context** — Carry product and technical decisions forward instead of re-explaining them in every chat.
|
|
39
|
+
- **Specialized perspectives** — Bring in product, architecture, UX, development, and testing expertise when it helps.
|
|
40
|
+
- **Guided collaboration** — Use structured workflows and multiple-agent discussions without handing over judgment.
|
|
41
|
+
- **One delivery path** — Move from early thinking through reviewed implementation, correction, and learning.
|
|
42
|
+
|
|
43
|
+
[See how the workflows fit together →](https://docs.maxwellai-froid.org/reference/workflow-map/)
|
|
44
|
+
|
|
45
|
+
## Froid Ecosystem
|
|
46
|
+
|
|
47
|
+
Install the core method or add official modules for specialized work.
|
|
48
|
+
|
|
49
|
+
| Module | Purpose |
|
|
50
|
+
| --- | --- |
|
|
51
|
+
| **[MaxwellAI OS Froid](https://github.com/cordya-ai/MAXWELLAI-FROID)** | Plan and deliver software, from new prototypes to established codebases |
|
|
52
|
+
| **[Froid Builder](https://github.com/cordya-ai/froid-builder)** | Skill, workflow, and agent builder |
|
|
53
|
+
| **[Froid Creative Intelligence Suite](https://github.com/cordya-ai/froid-module-creative-intelligence-suite)** | Creative thinking partners for innovation, design thinking, and storytelling |
|
|
54
|
+
| **[Froid Test Architect](https://github.com/cordya-ai/maxwellai-froid-test-architecture-enterprise)** | Enterprise testing add-on for MaxwellAI OS Froid |
|
|
55
|
+
| **[Froid Loop](https://github.com/cordya-ai/froid-loop)** | Builds, verifies, and retros a whole epic unattended |
|
|
56
|
+
| **[Froid Game Dev Studio](https://github.com/cordya-ai/froid-module-game-dev-studio)** | Ideate, design, and build games in any framework, including Unity, Unreal, Godot, and Phaser |
|
|
57
|
+
|
|
58
|
+
## Plan on the Web
|
|
59
|
+
|
|
60
|
+
[Web bundles](https://bmadcode.com/web-bundles/) package selected Froid workflows as Google Gemini Gems and ChatGPT Custom GPTs. Use them for planning in your existing web subscription, then bring the resulting artifacts into your AI coding tool for implementation.
|
|
61
|
+
|
|
62
|
+
## Documentation
|
|
63
|
+
|
|
64
|
+
- **[Build Your First Change](https://docs.maxwellai-froid.org/start/build-your-first-change/)** — Install Froid and build a small project.
|
|
65
|
+
- **[Workflow Map](https://docs.maxwellai-froid.org/reference/workflow-map/)** — Understand the available paths and outputs.
|
|
66
|
+
- **[Established Projects](https://docs.maxwellai-froid.org/how-to/established-projects/)** — Add Froid to an existing codebase.
|
|
67
|
+
- **[Upgrade to V6](https://docs.maxwellai-froid.org/how-to/upgrade-to-v6/)** — Migrate from an earlier version.
|
|
68
|
+
|
|
69
|
+
## Community
|
|
70
|
+
|
|
71
|
+
- [Discord](https://discord.gg/gk8jAdXWmj) — Get help, share ideas, and collaborate.
|
|
72
|
+
- [YouTube](https://youtube.com/@FroidCode) — Watch tutorials and master classes.
|
|
73
|
+
- [GitHub Issues](https://github.com/cordya-ai/MAXWELLAI-FROID/issues) — Report bugs and request features.
|
|
74
|
+
- [GitHub Discussions](https://github.com/cordya-ai/MAXWELLAI-FROID/discussions) — Join longer community conversations.
|
|
75
|
+
- [Froid Code](https://bmadcode.com) — Explore the wider ecosystem.
|
|
76
|
+
|
|
77
|
+
## Support and Contributing
|
|
78
|
+
|
|
79
|
+
Froid is free for everyone and always will be. Star the repository, [buy me a coffee](https://buymeacoffee.com/froid), or email <contact@bmadcode.com> for corporate sponsorship.
|
|
80
|
+
|
|
81
|
+
Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request.
|
|
82
|
+
|
|
83
|
+
## License
|
|
84
|
+
|
|
85
|
+
MIT License — see [LICENSE](LICENSE) for details.
|
|
86
|
+
|
|
87
|
+
**Froid** and **MAXWELLAI-FROID** are trademarks of Froid Code, LLC. See [TRADEMARK.md](TRADEMARK.md) for details.
|
|
88
|
+
|
|
89
|
+
If you would like to contribute, join us in the discord and read [CONTRIBUTORS.md](CONTRIBUTORS.md) first.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Official module registry — the single source of truth for which modules
|
|
2
|
+
# the Froid installer offers and how they are displayed.
|
|
3
|
+
#
|
|
4
|
+
# Order here determines display order in the installer picker (after the
|
|
5
|
+
# built-in core and froid entries, which are loaded from local module.yaml).
|
|
6
|
+
#
|
|
7
|
+
# default_channel (optional) — the install channel when the user does not
|
|
8
|
+
# override with --channel/--pin/--next. Valid values: stable | next.
|
|
9
|
+
# Omit to inherit the installer's hardcoded default (stable).
|
|
10
|
+
#
|
|
11
|
+
# deprecated (optional, default false) — when true, the module is hidden from
|
|
12
|
+
# the installer picker UNLESS it is already installed (so existing users can
|
|
13
|
+
# still see/manage it, but new users are not offered it).
|
|
14
|
+
# deprecation-message (optional) — surfaced in the picker hint for a deprecated
|
|
15
|
+
# module that is still installed; use it to point users to the replacement.
|
|
16
|
+
#
|
|
17
|
+
# marketplace-plugin (optional, default false) — when true, the module's
|
|
18
|
+
# installable skills are resolved from its .claude-plugin/marketplace.json via
|
|
19
|
+
# the plugin resolver (instead of copying the single module-definition dir).
|
|
20
|
+
# Use this for modules whose module.yaml does not sit alongside the skill
|
|
21
|
+
# folders. module-definition should still point at the real module.yaml so
|
|
22
|
+
# config/version lookups work.
|
|
23
|
+
#
|
|
24
|
+
# post-install-message (optional) — an "action needed" notice shown to the user
|
|
25
|
+
# after install completes, once for each install run that includes the module.
|
|
26
|
+
# Interactive installs require the user to acknowledge it (press Enter);
|
|
27
|
+
# non-interactive (--yes) installs print it and continue. Use for required
|
|
28
|
+
# follow-up steps (e.g. "run the X setup skill").
|
|
29
|
+
#
|
|
30
|
+
# aliases (optional) — prior `code` values this module was registered under.
|
|
31
|
+
# An existing install recorded under an alias resolves to this entry (source,
|
|
32
|
+
# name, description, post-install message) instead of being orphaned as
|
|
33
|
+
# "no source available" when the code changes. quick-update also migrates the
|
|
34
|
+
# install to the new code and removes the stale `_maxwellai-froid/<alias>/` directory.
|
|
35
|
+
|
|
36
|
+
modules:
|
|
37
|
+
froid-builder:
|
|
38
|
+
url: https://github.com/cordya-ai/froid-builder
|
|
39
|
+
module-definition: skills/module.yaml
|
|
40
|
+
code: bmb
|
|
41
|
+
name: "Froid Builder"
|
|
42
|
+
description: "Skill, workflow, and agent builder"
|
|
43
|
+
defaultSelected: false
|
|
44
|
+
type: froid-org
|
|
45
|
+
npmPackage: froid-builder
|
|
46
|
+
default_channel: stable
|
|
47
|
+
|
|
48
|
+
froid-creative-intelligence-suite:
|
|
49
|
+
url: https://github.com/cordya-ai/froid-module-creative-intelligence-suite
|
|
50
|
+
module-definition: src/module.yaml
|
|
51
|
+
code: cis
|
|
52
|
+
name: "Froid Creative Intelligence Suite"
|
|
53
|
+
description: "Creative thinking partners"
|
|
54
|
+
defaultSelected: false
|
|
55
|
+
type: froid-org
|
|
56
|
+
npmPackage: froid-creative-intelligence-suite
|
|
57
|
+
default_channel: stable
|
|
58
|
+
|
|
59
|
+
froid-method-test-architecture-enterprise:
|
|
60
|
+
url: https://github.com/cordya-ai/froid-method-test-architecture-enterprise
|
|
61
|
+
module-definition: src/module.yaml
|
|
62
|
+
code: tea
|
|
63
|
+
name: "Froid Test Architect"
|
|
64
|
+
description: "Enterprise testing Froid add-on"
|
|
65
|
+
defaultSelected: false
|
|
66
|
+
type: froid-org
|
|
67
|
+
npmPackage: froid-method-test-architecture-enterprise
|
|
68
|
+
default_channel: stable
|
|
69
|
+
|
|
70
|
+
froid-loop:
|
|
71
|
+
url: https://github.com/cordya-ai/froid-loop
|
|
72
|
+
module-definition: src/froid_loop/data/skills/froid-loop-setup/assets/module.yaml
|
|
73
|
+
code: froid-loop
|
|
74
|
+
# bauto is the pre-rename code (module was froid-auto before both the repo
|
|
75
|
+
# and its contents were renamed to froid-loop); keeps existing bauto
|
|
76
|
+
# installs migrating forward instead of being orphaned.
|
|
77
|
+
aliases: [bauto]
|
|
78
|
+
name: "Froid Loop"
|
|
79
|
+
description: "Builds, verifies, and retros a whole epic unattended"
|
|
80
|
+
defaultSelected: false
|
|
81
|
+
type: froid-org
|
|
82
|
+
npmPackage: froid-loop
|
|
83
|
+
default_channel: stable
|
|
84
|
+
# Skills live outside a single module.yaml dir; resolve them from
|
|
85
|
+
# .claude-plugin/marketplace.json via the plugin resolver (see external-manager).
|
|
86
|
+
marketplace-plugin: true
|
|
87
|
+
post-install-message: |
|
|
88
|
+
Froid Loop installed. To finish setup, run the froid-loop-setup skill
|
|
89
|
+
from your agent:
|
|
90
|
+
|
|
91
|
+
> use the froid-loop-setup skill
|
|
92
|
+
|
|
93
|
+
It installs the froid-loop orchestrator tool and wires up the per-project
|
|
94
|
+
hooks and policy. The automation skills don't run until setup completes.
|
|
95
|
+
|
|
96
|
+
froid-game-dev-studio:
|
|
97
|
+
url: https://github.com/cordya-ai/froid-module-game-dev-studio.git
|
|
98
|
+
module-definition: src/module.yaml
|
|
99
|
+
code: gds
|
|
100
|
+
name: "Froid Game Dev Studio"
|
|
101
|
+
description: "Ideate, design, and build games"
|
|
102
|
+
defaultSelected: false
|
|
103
|
+
type: froid-org
|
|
104
|
+
npmPackage: froid-game-dev-studio
|
|
105
|
+
default_channel: stable
|
|
106
|
+
|
|
107
|
+
# --- Deprecated: hidden from the picker unless already installed ---
|
|
108
|
+
|
|
109
|
+
froid-automator:
|
|
110
|
+
url: https://github.com/cordya-ai/froid-automator
|
|
111
|
+
module-definition: skills/module.yaml
|
|
112
|
+
code: automator
|
|
113
|
+
name: "Froid Automator Epic Builder Experimental"
|
|
114
|
+
description: "EXPERIMENTAL: only supports claude and codex currently"
|
|
115
|
+
defaultSelected: false
|
|
116
|
+
type: experimental
|
|
117
|
+
npmPackage: froid-story-automator
|
|
118
|
+
default_channel: next
|
|
119
|
+
deprecated: true
|
|
120
|
+
deprecation-message: "Froid Automator has been deprecated and is replaced by Froid Loop (froid-loop). Install Froid Loop instead."
|
|
121
|
+
|
|
122
|
+
froid-method-wds-expansion:
|
|
123
|
+
url: https://github.com/cordya-ai/froid-method-wds-expansion
|
|
124
|
+
module-definition: src/module.yaml
|
|
125
|
+
code: wds
|
|
126
|
+
plugin_name: froid-wds # WDS marketplace.json declares the plugin under this name
|
|
127
|
+
name: "Whiteport Design Studio"
|
|
128
|
+
description: "Strategic UX and Design first planning methodology"
|
|
129
|
+
defaultSelected: false
|
|
130
|
+
type: froid-org
|
|
131
|
+
npmPackage: froid-wds
|
|
132
|
+
default_channel: stable
|
|
133
|
+
deprecated: true
|
|
134
|
+
deprecation-message: "Whiteport Design Studio is no longer receiving updates. Its capabilities are being folded into Froid Method (froid) as enhanced UX features. Your existing install is kept as-is."
|
package/package.json
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/package.json",
|
|
3
|
+
"name": "maxwellai-froid",
|
|
4
|
+
"version": "6.11.0",
|
|
5
|
+
"description": "MaxwellAI OS Froid — AI-driven development framework",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"agile",
|
|
8
|
+
"ai",
|
|
9
|
+
"orchestrator",
|
|
10
|
+
"development",
|
|
11
|
+
"methodology",
|
|
12
|
+
"agents",
|
|
13
|
+
"froid",
|
|
14
|
+
"maxwellai"
|
|
15
|
+
],
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/cordya-ai/maxwellai-froid.git"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"author": "Brian (Froid) Madison",
|
|
22
|
+
"main": "tools/installer/froid-cli.js",
|
|
23
|
+
"bin": {
|
|
24
|
+
"froid": "tools/installer/froid-cli.js"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"docs:build": "node tools/build-docs.mjs",
|
|
28
|
+
"docs:dev": "astro dev --root website",
|
|
29
|
+
"docs:fix-links": "node tools/fix-doc-links.js",
|
|
30
|
+
"docs:preview": "astro preview --root website",
|
|
31
|
+
"docs:validate-links": "node tools/validate-doc-links.js",
|
|
32
|
+
"docs:validate-sidebar": "node tools/validate-sidebar-order.js",
|
|
33
|
+
"format:check": "prettier --check \"**/*.{js,cjs,mjs,json,yaml}\"",
|
|
34
|
+
"format:fix": "prettier --write \"**/*.{js,cjs,mjs,json,yaml}\"",
|
|
35
|
+
"format:fix:staged": "prettier --write",
|
|
36
|
+
"froid:install": "node tools/installer/froid-cli.js install",
|
|
37
|
+
"froid:uninstall": "node tools/installer/froid-cli.js uninstall",
|
|
38
|
+
"install:froid": "node tools/installer/froid-cli.js install",
|
|
39
|
+
"lint": "eslint . --ext .js,.cjs,.mjs,.yaml --max-warnings=0",
|
|
40
|
+
"lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix",
|
|
41
|
+
"lint:md": "markdownlint-cli2 \"**/*.md\"",
|
|
42
|
+
"prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
|
|
43
|
+
"quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run test:site-url && npm run test:implementation-model && npm run test:install && npm run test:urls && npm run test:renderer && npm run test:retrospective && npm run test:sprint-planning && npm run validate:refs && npm run validate:skills && npm run docs:validate-sidebar",
|
|
44
|
+
"rebundle": "node tools/installer/bundlers/bundle-web.js rebundle",
|
|
45
|
+
"test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:site-url && npm run test:implementation-model && npm run test:channels && npm run test:renderer && npm run test:retrospective && npm run test:sprint-planning && npm run test:skills && npm run lint && npm run lint:md && npm run format:check",
|
|
46
|
+
"test:channels": "node test/test-installer-channels.js",
|
|
47
|
+
"test:implementation-model": "node test/test-validate-published-implementation-model.mjs",
|
|
48
|
+
"test:install": "node test/test-installation-components.js && node test/test-shim-policy.js",
|
|
49
|
+
"test:refs": "node test/test-file-refs-csv.js",
|
|
50
|
+
"test:renderer": "uv run --python 3.11 python -m unittest src/scripts/tests/test_config_utils.py src/scripts/tests/test_resolve_config.py src/scripts/tests/test_resolve_customization.py && node test/test-build-auto-renderer.js",
|
|
51
|
+
"test:retrospective": "uv run --python 3.11 src/froid-skills/ship/froid-retrospective/scripts/tests/test_git_evidence.py && uv run --python 3.11 src/froid-skills/ship/froid-retrospective/scripts/tests/test_sprint_status.py",
|
|
52
|
+
"test:site-url": "node test/test-site-url.mjs",
|
|
53
|
+
"test:skills": "node test/test-validate-skills.js",
|
|
54
|
+
"test:sprint-planning": "uv run --python 3.11 src/froid-skills/plan/froid-sprint-planning/scripts/tests/test_sprint_plan.py && node test/test-template-sync.js",
|
|
55
|
+
"test:urls": "node test/test-parse-source-urls.js",
|
|
56
|
+
"validate:refs": "node tools/validate-file-refs.js --strict",
|
|
57
|
+
"validate:skills": "node tools/validate-skills.js --strict"
|
|
58
|
+
},
|
|
59
|
+
"lint-staged": {
|
|
60
|
+
"*.{js,cjs,mjs}": [
|
|
61
|
+
"npm run lint:fix",
|
|
62
|
+
"npm run format:fix:staged"
|
|
63
|
+
],
|
|
64
|
+
"*.yaml": [
|
|
65
|
+
"eslint --fix",
|
|
66
|
+
"npm run format:fix:staged"
|
|
67
|
+
],
|
|
68
|
+
"*.json": [
|
|
69
|
+
"npm run format:fix:staged"
|
|
70
|
+
],
|
|
71
|
+
"*.md": [
|
|
72
|
+
"markdownlint-cli2"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"esbuild": "^0.28.1",
|
|
77
|
+
"markdownlint-cli2": {
|
|
78
|
+
"markdown-it": "^14.2.0"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"dependencies": {
|
|
82
|
+
"@clack/core": "^1.3.1",
|
|
83
|
+
"@clack/prompts": "^1.4.0",
|
|
84
|
+
"@kayvan/markdown-tree-parser": "^1.6.1",
|
|
85
|
+
"chalk": "^4.1.2",
|
|
86
|
+
"commander": "^14.0.0",
|
|
87
|
+
"csv-parse": "^6.1.0",
|
|
88
|
+
"glob": "^11.0.3",
|
|
89
|
+
"ignore": "^7.0.5",
|
|
90
|
+
"js-yaml": "^4.1.0",
|
|
91
|
+
"picocolors": "^1.1.1",
|
|
92
|
+
"semver": "^7.6.3",
|
|
93
|
+
"xml2js": "^0.6.2",
|
|
94
|
+
"yaml": "^2.7.0"
|
|
95
|
+
},
|
|
96
|
+
"devDependencies": {
|
|
97
|
+
"@astrojs/sitemap": "^3.7.3",
|
|
98
|
+
"@astrojs/starlight": "^0.40.0",
|
|
99
|
+
"@eslint/js": "^9.33.0",
|
|
100
|
+
"astro": "^6.4.6",
|
|
101
|
+
"c8": "^10.1.3",
|
|
102
|
+
"eslint": "^9.33.0",
|
|
103
|
+
"eslint-config-prettier": "^10.1.8",
|
|
104
|
+
"eslint-plugin-n": "^17.21.3",
|
|
105
|
+
"eslint-plugin-unicorn": "^60.0.0",
|
|
106
|
+
"eslint-plugin-yml": "^1.18.0",
|
|
107
|
+
"husky": "^9.1.7",
|
|
108
|
+
"jest": "^30.2.0",
|
|
109
|
+
"lint-staged": "^16.1.1",
|
|
110
|
+
"markdownlint-cli2": "^0.19.1",
|
|
111
|
+
"prettier": "^3.7.4",
|
|
112
|
+
"prettier-plugin-packagejson": "^2.5.19",
|
|
113
|
+
"sharp": "^0.33.5",
|
|
114
|
+
"unist-util-visit": "^5.1.0",
|
|
115
|
+
"yaml-eslint-parser": "^1.2.3",
|
|
116
|
+
"yaml-lint": "^1.7.0"
|
|
117
|
+
},
|
|
118
|
+
"engines": {
|
|
119
|
+
"node": ">=20.12.0"
|
|
120
|
+
},
|
|
121
|
+
"files": [
|
|
122
|
+
"src/core-skills/",
|
|
123
|
+
"src/froid-skills/",
|
|
124
|
+
"src/scripts/",
|
|
125
|
+
"tools/installer/",
|
|
126
|
+
"froid-modules.yaml",
|
|
127
|
+
"README.md",
|
|
128
|
+
"LICENSE"
|
|
129
|
+
],
|
|
130
|
+
"publishConfig": {
|
|
131
|
+
"access": "public"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: froid-advanced-elicitation
|
|
3
|
+
description: 'Push the LLM to reconsider, refine, and improve its recent output. Use when user asks for deeper critique or mentions a known deeper critique method, e.g. socratic, first principles, pre-mortem, red team'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Advanced Elicitation
|
|
7
|
+
|
|
8
|
+
You are Froid's shared refinement checkpoint: other skills invoke you at natural pauses to pressure the piece of work they just produced, and users call you directly on anything recent. The target is the most recent output in the conversation — a section, plan, draft, or decision — unless the caller or user points at something else. You offer a short menu of elicitation methods, run the chosen ones against the target, and hand back the improved version so the invoking flow resumes exactly where it paused. Work in the surrounding session's communication language.
|
|
9
|
+
|
|
10
|
+
## Conventions
|
|
11
|
+
|
|
12
|
+
- Bare paths (e.g. `assets/methods.csv`) resolve from `{skill-root}` (where `customize.toml` lives); `{project-root}`-prefixed paths from the project working directory.
|
|
13
|
+
- `{workflow.<name>}` resolves to fields in the merged `customize.toml` `[workflow]` table.
|
|
14
|
+
|
|
15
|
+
## On Activation
|
|
16
|
+
|
|
17
|
+
1. Resolve customization: `uv run {project-root}/_maxwellai-froid/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and use defaults.
|
|
18
|
+
2. Hold every `{workflow.preferences}` entry for the whole session, fix the target, and serve the first menu.
|
|
19
|
+
|
|
20
|
+
## Serving the Catalog
|
|
21
|
+
|
|
22
|
+
`scripts/pick_methods.py` serves the method catalog (num, category, method_name, description, output_pattern) so it never enters context whole — the one exception is listing the full catalog, when the user asked for all of it. Invoke as:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
uv run {skill-root}/scripts/pick_methods.py --file {workflow.methods_file} <command>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If `{workflow.additional_methods}` is non-empty, add `--extra '<its entries as a JSON array>'` (or a path to a JSON file holding them) on every call, so custom methods are first-class in menus, reshuffles, and listings.
|
|
29
|
+
|
|
30
|
+
- `categories` — category names + counts, the cheap map.
|
|
31
|
+
- `list --category <cat> [--category <cat>]` — the index for chosen categories; `--all` dumps the whole catalog, only when listing all.
|
|
32
|
+
- `show <name-or-num> [...]` — full rows by name or num.
|
|
33
|
+
- `random -n 5 --spread [--exclude <name>]...` — a category-diverse random draw.
|
|
34
|
+
|
|
35
|
+
**First menu:** run `categories`, pick the 2–4 categories that fit the target (risk before a launch, technical for code, collaboration when stakeholders compete, creative when the content is flat), `list` them, and hand-pick five methods that attack the target from different angles — honoring `{workflow.preferences}`. **Reshuffle:** `random -n 5 --spread`, excluding everything already offered.
|
|
36
|
+
|
|
37
|
+
## The Menu
|
|
38
|
+
|
|
39
|
+
HALT and give the user a choice:
|
|
40
|
+
|
|
41
|
+
- The five offered methods, listed by name. The user may pick one or several.
|
|
42
|
+
- **Reshuffle** — replace the list with five new options.
|
|
43
|
+
- **List all** — show the full catalog with descriptions.
|
|
44
|
+
- **Proceed** — no further elicitation.
|
|
45
|
+
|
|
46
|
+
This menu is the interface other skills and their users rely on — keep its options and behavior stable. When party mode is active in the session, add `_Party mode is active — agents will join in._` under the heading.
|
|
47
|
+
|
|
48
|
+
- If the user picks methods: run them (several: in sequence), then offer the menu again.
|
|
49
|
+
- If the user chooses **Reshuffle**: reshuffle as above and offer the menu again.
|
|
50
|
+
- If the user chooses **List all**: show the full catalog (`list --all`) as a compact table; a pick by name or number runs like a method choice.
|
|
51
|
+
- If the user chooses **Proceed**: done. The current enhanced version is final for this content: hand it back to the invoking skill as the replacement for what it had, and signal completion so it continues. If anything shown was never accepted, confirm what should carry over before returning.
|
|
52
|
+
- Any other reply is direction: apply it to the target and offer the menu again.
|
|
53
|
+
|
|
54
|
+
## Running a Method
|
|
55
|
+
|
|
56
|
+
Use the method's description as its intent and its output_pattern as a flexible flow guide; scale depth to the target — a paragraph gets a light pass, an architecture decision gets the full treatment. Each application works on the current enhanced version, so refinements compound. Show what the method revealed and the changes it proposes, then HALT and give the user a choice:
|
|
57
|
+
|
|
58
|
+
- **Apply** — accept the proposed changes.
|
|
59
|
+
- **Reject** — drop the proposal entirely.
|
|
60
|
+
- Or give different direction.
|
|
61
|
+
|
|
62
|
+
Never change the work unless the user accepts the proposal. If they reject it, drop the proposal entirely. Any other reply is instruction to follow.
|
|
63
|
+
|
|
64
|
+
When a method casts personas (round tables, panels, debates), reuse party members already in the session if party mode is active; otherwise resolve installed agents on demand via `uv run {project-root}/_maxwellai-froid/scripts/resolve_config.py --project-root {project-root} --key agents` (a four-layer merge of `_maxwellai-froid/config.toml`, `config.user.toml`, and the two `_maxwellai-froid/custom/` overrides; each entry keyed by agent code carries name, title, icon, description). If neither yields a fit, invent named viewpoints suited to the content.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
num,category,method_name,description,output_pattern
|
|
2
|
+
1,advanced,Tree of Thoughts,Explore multiple reasoning paths simultaneously then evaluate and select the best - perfect for complex problems with multiple valid approaches,paths → evaluation → selection
|
|
3
|
+
2,advanced,Graph of Thoughts,Model reasoning as an interconnected network of ideas to reveal hidden relationships - ideal for systems thinking and discovering emergent patterns,nodes → connections → patterns
|
|
4
|
+
3,advanced,Thread of Thought,Maintain coherent reasoning across long contexts by weaving a continuous narrative thread - essential for RAG systems and maintaining consistency,context → thread → synthesis
|
|
5
|
+
4,advanced,Self-Consistency Validation,Generate multiple independent approaches then compare for consistency - crucial for high-stakes decisions where verification matters,approaches → comparison → consensus
|
|
6
|
+
5,advanced,Meta-Prompting Analysis,Step back to analyze the approach structure and methodology itself - valuable for optimizing prompts and improving problem-solving,current → analysis → optimization
|
|
7
|
+
6,advanced,Reasoning via Planning,Build a reasoning tree guided by world models and goal states - excellent for strategic planning and sequential decision-making,model → planning → strategy
|
|
8
|
+
7,advanced,Chain-of-Thought Scaffolding,Force explicit intermediate reasoning steps before any conclusion — prevents intuitive leaps that skip flawed logic,premise → step → step → conclusion
|
|
9
|
+
8,advanced,Few-Shot Exemplar Priming,Provide 2-3 worked examples of the desired reasoning pattern before the real task — aligns output format and depth through demonstration,examples → pattern recognition → application
|
|
10
|
+
9,collaboration,Stakeholder Round Table,Convene multiple personas to contribute diverse perspectives - essential for requirements gathering and finding balanced solutions across competing interests,perspectives → synthesis → alignment
|
|
11
|
+
10,collaboration,Expert Panel Review,Assemble domain experts for deep specialized analysis - ideal when technical depth and peer review quality are needed,expert views → consensus → recommendations
|
|
12
|
+
11,collaboration,Debate Club Showdown,Two personas argue opposing positions while a moderator scores points - great for exploring controversial decisions and finding middle ground,thesis → antithesis → synthesis
|
|
13
|
+
12,collaboration,User Persona Focus Group,Gather your product's user personas to react to proposals and share frustrations - essential for validating features and discovering unmet needs,reactions → concerns → priorities
|
|
14
|
+
13,collaboration,Time Traveler Council,Past-you and future-you advise present-you on decisions - powerful for gaining perspective on long-term consequences vs short-term pressures,past wisdom → present choice → future impact
|
|
15
|
+
14,collaboration,Cross-Functional War Room,Product manager + engineer + designer tackle a problem together - reveals trade-offs between feasibility desirability and viability,constraints → trade-offs → balanced solution
|
|
16
|
+
15,collaboration,Mentor and Apprentice,Senior expert teaches junior while junior asks naive questions - surfaces hidden assumptions through teaching,explanation → questions → deeper understanding
|
|
17
|
+
16,collaboration,Good Cop Bad Cop,Supportive persona and critical persona alternate - finds both strengths to build on and weaknesses to address,encouragement → criticism → balanced view
|
|
18
|
+
17,collaboration,Improv Yes-And,Multiple personas build on each other's ideas without blocking - generates unexpected creative directions through collaborative building,idea → build → build → surprising result
|
|
19
|
+
18,collaboration,Customer Support Theater,Angry customer and support rep roleplay to find pain points - reveals real user frustrations and service gaps,complaint → investigation → resolution → prevention
|
|
20
|
+
19,collaboration,Six Thinking Hats,Rotate through six modes (facts - feelings - caution - optimism - creativity - process) to ensure a group covers every angle without crosstalk,white → red → black → yellow → green → blue
|
|
21
|
+
20,collaboration,Delphi Method,Experts give independent estimates - see anonymized results - then revise — converges on calibrated group judgment while avoiding anchoring bias,independent estimates → reveal → revise → converge
|
|
22
|
+
21,competitive,Red Team vs Blue Team,Adversarial attack-defend analysis to find vulnerabilities - critical for security testing and building robust solutions,defense → attack → hardening
|
|
23
|
+
22,competitive,Shark Tank Pitch,Entrepreneur pitches to skeptical investors who poke holes - stress-tests business viability and forces clarity on value proposition,pitch → challenges → refinement
|
|
24
|
+
23,competitive,Code Review Gauntlet,Senior devs with different philosophies review the same code - surfaces style debates and finds consensus on best practices,reviews → debates → standards
|
|
25
|
+
24,core,First Principles Analysis,Strip away assumptions to rebuild from fundamental truths - breakthrough technique for innovation and solving impossible problems,assumptions → truths → new approach
|
|
26
|
+
25,core,5 Whys Deep Dive,Repeatedly ask why to drill down to root causes - simple but powerful for understanding failures,why chain → root cause → solution
|
|
27
|
+
26,core,Socratic Questioning,Use targeted questions to reveal hidden assumptions and guide discovery - excellent for teaching and self-discovery,questions → revelations → understanding
|
|
28
|
+
27,core,Critique and Refine,Systematic review to identify strengths and weaknesses then improve - standard quality check for drafts,strengths/weaknesses → improvements → refined
|
|
29
|
+
28,core,Explain Reasoning,Walk through step-by-step thinking to show how conclusions were reached - crucial for transparency,steps → logic → conclusion
|
|
30
|
+
29,core,Expand or Contract for Audience,Dynamically adjust detail level and technical depth for target audience - matches content to reader capabilities,audience → adjustments → refined content
|
|
31
|
+
30,core,Second-Order Thinking,Think beyond immediate consequences to anticipate cascading effects and long-term implications - essential for strategic decisions where first-order solutions create hidden downstream problems,action → consequences → second-order effects → informed choice
|
|
32
|
+
31,core,Inversion Analysis,Flip the problem by asking what would guarantee failure instead of how to succeed - reveals hidden obstacles and blind spots by approaching challenges from the opposite direction,goal → invert → failure paths → avoidance → solution
|
|
33
|
+
32,core,Problem Decomposition,Break a complex problem into independent sub-problems - solve each - then reassemble — essential when a task is too large or tangled to tackle whole,whole → parts → solutions → reassembly
|
|
34
|
+
33,core,Analogy Mapping,Find a well-understood parallel domain and transfer its structure to the current problem — unlocks insight by borrowing proven mental models,source domain → mapping → target insight
|
|
35
|
+
34,core,Steelmanning,Construct the strongest possible version of an opposing argument before responding — builds credibility and catches blind spots that strawmanning misses,opposing view → strongest form → honest rebuttal
|
|
36
|
+
35,creative,SCAMPER Method,Apply seven creativity lenses (Substitute/Combine/Adapt/Modify/Put/Eliminate/Reverse) - systematic ideation for product innovation,S→C→A→M→P→E→R
|
|
37
|
+
36,creative,Reverse Engineering,Work backwards from desired outcome to find implementation path - powerful for goal achievement and understanding endpoints,end state → steps backward → path forward
|
|
38
|
+
37,creative,What If Scenarios,Explore alternative realities to understand possibilities and implications - valuable for contingency planning and exploration,scenarios → implications → insights
|
|
39
|
+
38,creative,Random Input Stimulus,Inject unrelated concepts to spark unexpected connections - breaks creative blocks through forced lateral thinking,random word → associations → novel ideas
|
|
40
|
+
39,creative,Exquisite Corpse Brainstorm,Each persona adds to the idea seeing only the previous contribution - generates surprising combinations through constrained collaboration,contribution → handoff → contribution → surprise
|
|
41
|
+
40,creative,Genre Mashup,Combine two unrelated domains to find fresh approaches - innovation through unexpected cross-pollination,domain A + domain B → hybrid insights
|
|
42
|
+
41,creative,Constraint Injection,Deliberately add an artificial limitation (budget - time - technology) to force novel solutions — creativity thrives under pressure,add constraint → forced creativity → remove constraint → evaluate
|
|
43
|
+
42,creative,Morphological Analysis,List independent parameters of a problem - enumerate options for each - then systematically combine — ensures you don't miss non-obvious configurations,parameters → options grid → combinations → evaluation
|
|
44
|
+
43,creative,Subtraction,Improve by deliberately removing elements instead of adding them - counters the well-documented additive bias where people overlook subtractive changes that would simplify and strengthen the work,current state → what to remove → simplified result
|
|
45
|
+
44,framing,Abstraction Laddering,"Move up (""why?"") for strategic clarity or down (""how?"") for tactical detail — ensures you're solving at the right altitude",concrete ↔ abstract → right level
|
|
46
|
+
45,framing,Reframe the Question,Challenge whether the stated problem is the real problem — often the question itself is wrong and a better framing unlocks an easy answer,stated problem → reframe → true problem → solution
|
|
47
|
+
46,framing,Stakeholder Lens Rotation,Serially adopt each stakeholder's world-view to see the same situation differently — reveals whose needs are being overlooked,perspective A → B → C → gaps found
|
|
48
|
+
47,framing,Map Is Not the Territory,Treat any model or diagram as a lossy abstraction of reality - check where the representation diverges from the real system before trusting it,model → reality check → divergences found → corrected understanding
|
|
49
|
+
48,learning,Feynman Technique,Explain complex concepts simply as if teaching a child - the ultimate test of true understanding,complex → simple → gaps → mastery
|
|
50
|
+
49,learning,Active Recall Testing,Test understanding without references to verify true knowledge - essential for identifying gaps,test → gaps → reinforcement
|
|
51
|
+
50,learning,Deliberate Practice Loop,Identify a specific sub-skill - drill it with immediate feedback - adjust - repeat — targeted improvement beats general repetition,isolate → drill → feedback → adjust → repeat
|
|
52
|
+
51,philosophical,Occam's Razor Application,Find the simplest sufficient explanation by eliminating unnecessary complexity - essential for debugging,options → simplification → selection
|
|
53
|
+
52,philosophical,Trolley Problem Variations,Explore ethical trade-offs through moral dilemmas - valuable for understanding values and difficult decisions,dilemma → analysis → decision
|
|
54
|
+
53,research,Literature Review Personas,Optimist researcher + skeptic researcher + synthesizer review sources - balanced assessment of evidence quality,sources → critiques → synthesis
|
|
55
|
+
54,research,Thesis Defense Simulation,Student defends hypothesis against committee with different concerns - stress-tests research methodology and conclusions,thesis → challenges → defense → refinements
|
|
56
|
+
55,research,Comparative Analysis Matrix,Multiple analysts evaluate options against weighted criteria - structured decision-making with explicit scoring,options → criteria → scores → recommendation
|
|
57
|
+
56,research,Source Triangulation,Require at least three independent source types (quantitative - qualitative - expert) before accepting a claim — guards against single-source bias,claim → source A → source B → source C → confidence rating
|
|
58
|
+
57,retrospective,Hindsight Reflection,Imagine looking back from the future to gain perspective - powerful for project reviews,future view → insights → application
|
|
59
|
+
58,retrospective,Lessons Learned Extraction,Systematically identify key takeaways and actionable improvements - essential for continuous improvement,experience → lessons → actions
|
|
60
|
+
59,risk,Pre-mortem Analysis,Imagine future failure then work backwards to prevent it - powerful technique for risk mitigation before major launches,failure scenario → causes → prevention
|
|
61
|
+
60,risk,Failure Mode Analysis,Systematically explore how each component could fail - critical for reliability engineering and safety-critical systems,components → failures → prevention
|
|
62
|
+
61,risk,Challenge from Critical Perspective,Play devil's advocate to stress-test ideas and find weaknesses - essential for overcoming groupthink,assumptions → challenges → strengthening
|
|
63
|
+
62,risk,Identify Potential Risks,Brainstorm what could go wrong across all categories - fundamental for project planning and deployment preparation,categories → risks → mitigations
|
|
64
|
+
63,risk,Chaos Monkey Scenarios,Deliberately break things to test resilience and recovery - ensures systems handle failures gracefully,break → observe → harden
|
|
65
|
+
64,risk,Assumption Audit,Explicitly list every assumption underlying a plan - rate each by confidence and impact - then stress-test the weakest — prevents building on shaky foundations,list → rate → stress-test → shore up
|
|
66
|
+
65,risk,Cascading Failure Simulation,Trace how one component's failure propagates through dependencies — reveals hidden coupling and single points of failure,trigger failure → trace propagation → find amplifiers → decouple
|
|
67
|
+
66,technical,Architecture Decision Records,Multiple architect personas propose and debate architectural choices with explicit trade-offs - ensures decisions are well-reasoned and documented,options → trade-offs → decision → rationale
|
|
68
|
+
67,technical,Rubber Duck Debugging Evolved,Explain your code to progressively more technical ducks until you find the bug - forces clarity at multiple abstraction levels,simple → detailed → technical → aha
|
|
69
|
+
68,technical,Algorithm Olympics,Multiple approaches compete on the same problem with benchmarks - finds optimal solution through direct comparison,implementations → benchmarks → winner
|
|
70
|
+
69,technical,Security Audit Personas,Hacker + defender + auditor examine system from different threat models - comprehensive security review from multiple angles,vulnerabilities → defenses → compliance
|
|
71
|
+
70,technical,Performance Profiler Panel,Database expert + frontend specialist + DevOps engineer diagnose slowness - finds bottlenecks across the full stack,symptoms → analysis → optimizations
|
|
72
|
+
71,technical,Boundary & Edge Case Sweep,Systematically test extremes - zeros - nulls - maximums - and type mismatches — catches the failures that happy-path thinking always misses,inputs → boundaries → edge cases → failures found
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
+
#
|
|
3
|
+
# Workflow customization surface for froid-advanced-elicitation.
|
|
4
|
+
#
|
|
5
|
+
# Override files (not edited here):
|
|
6
|
+
# {project-root}/_maxwellai-froid/custom/froid-advanced-elicitation.toml (team)
|
|
7
|
+
# {project-root}/_maxwellai-froid/custom/froid-advanced-elicitation.user.toml (personal)
|
|
8
|
+
|
|
9
|
+
[workflow]
|
|
10
|
+
|
|
11
|
+
# --- Configurable below. Overrides merge per Froid structural rules: ---
|
|
12
|
+
# scalars: override wins • plain arrays: append
|
|
13
|
+
# arrays of tables keyed by `code`: matching key replaces, new keys append
|
|
14
|
+
|
|
15
|
+
# The elicitation method catalog served by scripts/pick_methods.py
|
|
16
|
+
# (columns: num,category,method_name,description,output_pattern). Swap the path
|
|
17
|
+
# in team/user TOML to ship a different catalog. Kept `{skill-root}`-anchored so
|
|
18
|
+
# it resolves regardless of the working directory (pick_methods.py is always
|
|
19
|
+
# invoked with `--file {workflow.methods_file}`).
|
|
20
|
+
methods_file = "{skill-root}/assets/methods.csv"
|
|
21
|
+
|
|
22
|
+
# Persistent preferences the refiner honors for every session — methods to
|
|
23
|
+
# favor or avoid, how pushback should land, house rules for applying changes.
|
|
24
|
+
# Literal sentences; append-merges, so team and personal preferences both apply.
|
|
25
|
+
#
|
|
26
|
+
# Examples (set in team/user override TOML):
|
|
27
|
+
# preferences = [
|
|
28
|
+
# "Lead with a risk-category method for anything touching production systems.",
|
|
29
|
+
# "Never offer roleplay or persona methods.",
|
|
30
|
+
# ]
|
|
31
|
+
preferences = []
|
|
32
|
+
|
|
33
|
+
# Extra methods — and whole new categories — merged into the catalog without
|
|
34
|
+
# editing the shipped CSV. Passed to pick_methods.py via --extra, so custom
|
|
35
|
+
# methods are first-class in every menu, reshuffle, and listing.
|
|
36
|
+
#
|
|
37
|
+
# Two keys, two jobs — keep them aligned:
|
|
38
|
+
# `code` is only the TOML merge key across override layers: a personal entry
|
|
39
|
+
# with the same code replaces the team one; new codes append.
|
|
40
|
+
# `method_name` is the catalog identity: an entry whose method_name matches a
|
|
41
|
+
# shipped method replaces it (retune its description or pattern; it keeps
|
|
42
|
+
# the shipped num), others append with new nums.
|
|
43
|
+
# To override another layer's entry, reuse its `code`. Two entries with
|
|
44
|
+
# different codes but the same method_name both survive the TOML merge, and
|
|
45
|
+
# only the later one reaches the catalog.
|
|
46
|
+
#
|
|
47
|
+
# Example (set in team/user override TOML):
|
|
48
|
+
# [[workflow.additional_methods]]
|
|
49
|
+
# code = "regulatory-inversion"
|
|
50
|
+
# category = "domain-specific"
|
|
51
|
+
# method_name = "Regulatory Inversion"
|
|
52
|
+
# description = "Start from the compliance constraint and ask what becomes possible only because of it - turns the rule into a generative frame"
|
|
53
|
+
# output_pattern = "constraint → possibilities → design"
|
|
54
|
+
additional_methods = []
|