@rpamis/comet 0.4.0-beta.3 → 0.4.0-beta.5
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 +21 -21
- package/README.md +15 -1
- package/assets/manifest.json +2 -1
- package/assets/skills/comet/SKILL.md +54 -28
- package/assets/skills/comet/reference/auto-transition.md +1 -1
- package/assets/skills/comet/reference/comet-yaml-fields.md +11 -6
- package/assets/skills/comet/reference/context-recovery.md +12 -2
- package/assets/skills/comet/reference/decision-point.md +11 -0
- package/assets/skills/comet/reference/scripts.md +47 -15
- package/assets/skills/comet/reference/subagent-dispatch.md +6 -5
- package/assets/skills/comet/rules/comet-phase-guard.en.md +31 -28
- package/assets/skills/comet/rules/comet-phase-guard.md +31 -29
- package/assets/skills/comet/scripts/comet-resume-probe.mjs +3 -0
- package/assets/skills/comet/scripts/comet-runtime.mjs +1568 -476
- package/assets/skills/comet-any/SKILL.md +1 -1
- package/assets/skills/comet-any/reference/authored-zone-example.md +10 -5
- package/assets/skills/comet-any/reference/subagents/pause-points-author.md +14 -11
- package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +2 -0
- package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +5 -4
- package/assets/skills/comet-archive/SKILL.md +52 -18
- package/assets/skills/comet-build/SKILL.md +64 -45
- package/assets/skills/comet-design/SKILL.md +24 -22
- package/assets/skills/comet-hotfix/SKILL.md +37 -34
- package/assets/skills/comet-open/SKILL.md +106 -57
- package/assets/skills/comet-tweak/SKILL.md +23 -18
- package/assets/skills/comet-verify/SKILL.md +57 -72
- package/assets/skills-zh/comet/SKILL.md +54 -28
- package/assets/skills-zh/comet/reference/auto-transition.md +1 -1
- package/assets/skills-zh/comet/reference/comet-yaml-fields.md +11 -6
- package/assets/skills-zh/comet/reference/context-recovery.md +12 -2
- package/assets/skills-zh/comet/reference/decision-point.md +11 -0
- package/assets/skills-zh/comet/reference/scripts.md +47 -15
- package/assets/skills-zh/comet/reference/subagent-dispatch.md +6 -5
- package/assets/skills-zh/comet-any/SKILL.md +1 -1
- package/assets/skills-zh/comet-any/reference/authored-zone-example.md +10 -5
- package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +14 -12
- package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +2 -0
- package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +5 -4
- package/assets/skills-zh/comet-archive/SKILL.md +52 -18
- package/assets/skills-zh/comet-build/SKILL.md +64 -45
- package/assets/skills-zh/comet-design/SKILL.md +24 -22
- package/assets/skills-zh/comet-hotfix/SKILL.md +36 -33
- package/assets/skills-zh/comet-open/SKILL.md +105 -56
- package/assets/skills-zh/comet-tweak/SKILL.md +22 -17
- package/assets/skills-zh/comet-verify/SKILL.md +57 -72
- package/dist/app/cli/comet-banner.d.ts +25 -0
- package/dist/app/cli/comet-banner.d.ts.map +1 -0
- package/dist/app/cli/comet-banner.js +265 -0
- package/dist/app/cli/comet-banner.js.map +1 -0
- package/dist/app/cli/index.js +36 -2
- package/dist/app/cli/index.js.map +1 -1
- package/dist/app/commands/classic.d.ts +4 -0
- package/dist/app/commands/classic.d.ts.map +1 -0
- package/dist/app/commands/classic.js +11 -0
- package/dist/app/commands/classic.js.map +1 -0
- package/dist/app/commands/doctor.d.ts.map +1 -1
- package/dist/app/commands/doctor.js +99 -37
- package/dist/app/commands/doctor.js.map +1 -1
- package/dist/app/commands/eval.d.ts.map +1 -1
- package/dist/app/commands/eval.js +57 -20
- package/dist/app/commands/eval.js.map +1 -1
- package/dist/app/commands/i18n.d.ts +1 -1
- package/dist/app/commands/i18n.d.ts.map +1 -1
- package/dist/app/commands/i18n.js +12 -4
- package/dist/app/commands/i18n.js.map +1 -1
- package/dist/app/commands/init.d.ts +1 -1
- package/dist/app/commands/init.d.ts.map +1 -1
- package/dist/app/commands/init.js +72 -25
- package/dist/app/commands/init.js.map +1 -1
- package/dist/app/commands/project-scope-selection.d.ts +13 -0
- package/dist/app/commands/project-scope-selection.d.ts.map +1 -0
- package/dist/app/commands/project-scope-selection.js +33 -0
- package/dist/app/commands/project-scope-selection.js.map +1 -0
- package/dist/app/commands/resume-probe.d.ts +11 -0
- package/dist/app/commands/resume-probe.d.ts.map +1 -0
- package/dist/app/commands/resume-probe.js +63 -0
- package/dist/app/commands/resume-probe.js.map +1 -0
- package/dist/app/commands/status.d.ts +31 -0
- package/dist/app/commands/status.d.ts.map +1 -1
- package/dist/app/commands/status.js +109 -20
- package/dist/app/commands/status.js.map +1 -1
- package/dist/app/commands/uninstall.d.ts +5 -0
- package/dist/app/commands/uninstall.d.ts.map +1 -1
- package/dist/app/commands/uninstall.js +264 -53
- package/dist/app/commands/uninstall.js.map +1 -1
- package/dist/app/commands/update.d.ts +6 -0
- package/dist/app/commands/update.d.ts.map +1 -1
- package/dist/app/commands/update.js +558 -86
- package/dist/app/commands/update.js.map +1 -1
- package/dist/config/repository-layout.json +4 -2
- package/dist/domains/bundle/bundle-platform.d.ts +1 -0
- package/dist/domains/bundle/bundle-platform.d.ts.map +1 -1
- package/dist/domains/bundle/bundle-platform.js +9 -3
- package/dist/domains/bundle/bundle-platform.js.map +1 -1
- package/dist/domains/bundle/eval-manifest-runtime.d.ts +6 -0
- package/dist/domains/bundle/eval-manifest-runtime.d.ts.map +1 -0
- package/dist/domains/bundle/eval-manifest-runtime.js +58 -0
- package/dist/domains/bundle/eval-manifest-runtime.js.map +1 -0
- package/dist/domains/bundle/types.d.ts +1 -1
- package/dist/domains/bundle/types.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-archive.d.ts +1 -0
- package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-archive.js +35 -38
- package/dist/domains/comet-classic/classic-archive.js.map +1 -1
- package/dist/domains/comet-classic/classic-cli.d.ts +1 -1
- package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-cli.js +3 -0
- package/dist/domains/comet-classic/classic-cli.js.map +1 -1
- package/dist/domains/comet-classic/classic-command-checks.d.ts +20 -0
- package/dist/domains/comet-classic/classic-command-checks.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-command-checks.js +97 -0
- package/dist/domains/comet-classic/classic-command-checks.js.map +1 -0
- package/dist/domains/comet-classic/classic-current-change.d.ts +19 -0
- package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-current-change.js +132 -0
- package/dist/domains/comet-classic/classic-current-change.js.map +1 -0
- package/dist/domains/comet-classic/classic-diagnostics.d.ts +2 -1
- package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-diagnostics.js +54 -1
- package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -1
- package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-evidence.js +4 -0
- package/dist/domains/comet-classic/classic-evidence.js.map +1 -1
- package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-guard.js +83 -80
- package/dist/domains/comet-classic/classic-guard.js.map +1 -1
- package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-hook-guard.js +179 -42
- package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
- package/dist/domains/comet-classic/classic-project-config.d.ts +16 -0
- package/dist/domains/comet-classic/classic-project-config.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-project-config.js +40 -0
- package/dist/domains/comet-classic/classic-project-config.js.map +1 -0
- package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-resolver.js +4 -4
- package/dist/domains/comet-classic/classic-resolver.js.map +1 -1
- package/dist/domains/comet-classic/classic-resume-probe-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-resume-probe-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe-command.js +58 -0
- package/dist/domains/comet-classic/classic-resume-probe-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.js +4 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe.d.ts +29 -0
- package/dist/domains/comet-classic/classic-resume-probe.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe.js +386 -0
- package/dist/domains/comet-classic/classic-resume-probe.js.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-run.d.ts +2 -1
- package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-runtime-run.js +38 -0
- package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -1
- package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state-command.js +150 -25
- package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
- package/dist/domains/comet-classic/classic-state.d.ts +5 -2
- package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state.js +17 -1
- package/dist/domains/comet-classic/classic-state.js.map +1 -1
- package/dist/domains/comet-classic/classic-store.d.ts +4 -1
- package/dist/domains/comet-classic/classic-store.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-store.js +4 -3
- package/dist/domains/comet-classic/classic-store.js.map +1 -1
- package/dist/domains/comet-classic/classic-transitions.d.ts +1 -1
- package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-transitions.js +36 -3
- package/dist/domains/comet-classic/classic-transitions.js.map +1 -1
- package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-validate-command.js +8 -1
- package/dist/domains/comet-classic/classic-validate-command.js.map +1 -1
- package/dist/domains/comet-classic/index.d.ts +3 -0
- package/dist/domains/comet-classic/index.d.ts.map +1 -1
- package/dist/domains/comet-classic/index.js +3 -0
- package/dist/domains/comet-classic/index.js.map +1 -1
- package/dist/domains/dashboard/collector.js +10 -2
- package/dist/domains/dashboard/collector.js.map +1 -1
- package/dist/domains/dashboard/web/assets/_commonjsHelpers-CqkleIqs.js +1 -0
- package/dist/domains/dashboard/web/assets/arc-TGVUG2WN.js +1 -0
- package/dist/domains/dashboard/web/assets/architectureDiagram-3BPJPVTR-ASHmiHoP.js +36 -0
- package/dist/domains/dashboard/web/assets/blockDiagram-GPEHLZMM-CwASxBKe.js +132 -0
- package/dist/domains/dashboard/web/assets/c4Diagram-AAUBKEIU-BU8z_WNk.js +10 -0
- package/dist/domains/dashboard/web/assets/channel-kp6Ng2JJ.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-2J33WTMH-CBGlUx4_.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-4BX2VUAB-CS-iGcFz.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-55IACEB6-BUtCVJat.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-727SXJPM-C94tj_pf.js +206 -0
- package/dist/domains/dashboard/web/assets/chunk-AQP2D5EJ-BFOKcpdG.js +231 -0
- package/dist/domains/dashboard/web/assets/chunk-FMBD7UC4-Dmx8B-st.js +15 -0
- package/dist/domains/dashboard/web/assets/chunk-ND2GUHAM-DYV00CNn.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-QZHKN3VN-DMJJyQnw.js +1 -0
- package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-yBDjgMY_.js +1 -0
- package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-yBDjgMY_.js +1 -0
- package/dist/domains/dashboard/web/assets/cose-bilkent-S5V4N54A-P4nE2rea.js +1 -0
- package/dist/domains/dashboard/web/assets/cynefin-VYW2F7L2-C-R1HXDv.js +166 -0
- package/dist/domains/dashboard/web/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
- package/dist/domains/dashboard/web/assets/dagre-BM42HDAG-BH8d-C9z.js +4 -0
- package/dist/domains/dashboard/web/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/domains/dashboard/web/assets/diagram-2AECGRRQ-DpXTgQIH.js +43 -0
- package/dist/domains/dashboard/web/assets/diagram-5GNKFQAL-DSiFJzSw.js +10 -0
- package/dist/domains/dashboard/web/assets/diagram-KO2AKTUF-DULMkben.js +3 -0
- package/dist/domains/dashboard/web/assets/diagram-LMA3HP47-Pi8m_NO9.js +24 -0
- package/dist/domains/dashboard/web/assets/diagram-OG6HWLK6-BSe6bCWm.js +24 -0
- package/dist/domains/dashboard/web/assets/erDiagram-TEJ5UH35-zb-FEcbq.js +85 -0
- package/dist/domains/dashboard/web/assets/flowDiagram-I6XJVG4X-Dr-Gk0z2.js +162 -0
- package/dist/domains/dashboard/web/assets/ganttDiagram-6RSMTGT7-qs6Zb2A6.js +292 -0
- package/dist/domains/dashboard/web/assets/gitGraphDiagram-PVQCEYII-BQ314orT.js +106 -0
- package/dist/domains/dashboard/web/assets/graph--OzhPTMs.js +1 -0
- package/dist/domains/dashboard/web/assets/index-BLAfkNTu.css +1 -0
- package/dist/domains/dashboard/web/assets/index-DlSYK56b.js +139 -0
- package/dist/domains/dashboard/web/assets/index-DtLUOcAW.js +24 -0
- package/dist/domains/dashboard/web/assets/index-QO0z6F4w.js +10 -0
- package/dist/domains/dashboard/web/assets/infoDiagram-5YYISTIA-O0bQp98A.js +2 -0
- package/dist/domains/dashboard/web/assets/init-Gi6I4Gst.js +1 -0
- package/dist/domains/dashboard/web/assets/ishikawaDiagram-YF4QCWOH-BPC7wbKh.js +70 -0
- package/dist/domains/dashboard/web/assets/journeyDiagram-JHISSGLW-ohViOd4b.js +139 -0
- package/dist/domains/dashboard/web/assets/kanban-definition-UN3LZRKU-CHleNdbG.js +89 -0
- package/dist/domains/dashboard/web/assets/katex-HP8lGamR.js +257 -0
- package/dist/domains/dashboard/web/assets/layout-SsrduOYp.js +1 -0
- package/dist/domains/dashboard/web/assets/linear-CyqiW--Q.js +1 -0
- package/dist/domains/dashboard/web/assets/marked.esm-DECB3bxB.js +64 -0
- package/dist/domains/dashboard/web/assets/mermaid.core-qS9XvtaK.js +301 -0
- package/dist/domains/dashboard/web/assets/mindmap-definition-RKZ34NQL-oaGkqO9l.js +96 -0
- package/dist/domains/dashboard/web/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/domains/dashboard/web/assets/pieDiagram-4H26LBE5-CPcB-AFh.js +30 -0
- package/dist/domains/dashboard/web/assets/purify.es-VaSPOPhr.js +3 -0
- package/dist/domains/dashboard/web/assets/quadrantDiagram-W4KKPZXB-LFy52Qtj.js +7 -0
- package/dist/domains/dashboard/web/assets/requirementDiagram-4Y6WPE33-BdjeaYP_.js +84 -0
- package/dist/domains/dashboard/web/assets/sankeyDiagram-5OEKKPKP-DDJ4styL.js +40 -0
- package/dist/domains/dashboard/web/assets/sequenceDiagram-3UESZ5HK-BL5bFNoz.js +162 -0
- package/dist/domains/dashboard/web/assets/stateDiagram-AJRCARHV-BNUfikui.js +1 -0
- package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-DGrsmWts.js +1 -0
- package/dist/domains/dashboard/web/assets/timeline-definition-PNZ67QCA--ps2uu6L.js +120 -0
- package/dist/domains/dashboard/web/assets/vennDiagram-CIIHVFJN-C2q8q26c.js +34 -0
- package/dist/domains/dashboard/web/assets/wardleyDiagram-YWT4CUSO-BUH9gXqd.js +78 -0
- package/dist/domains/dashboard/web/assets/xychartDiagram-2RQKCTM6-B-DielEy.js +7 -0
- package/dist/domains/dashboard/web/index.html +16 -16
- package/dist/domains/engine/types.d.ts +1 -1
- package/dist/domains/engine/types.d.ts.map +1 -1
- package/dist/domains/factory/package.d.ts.map +1 -1
- package/dist/domains/factory/package.js +20 -6
- package/dist/domains/factory/package.js.map +1 -1
- package/dist/domains/integrations/openspec.d.ts +4 -1
- package/dist/domains/integrations/openspec.d.ts.map +1 -1
- package/dist/domains/integrations/openspec.js +62 -10
- package/dist/domains/integrations/openspec.js.map +1 -1
- package/dist/domains/skill/find.d.ts.map +1 -1
- package/dist/domains/skill/find.js +1 -6
- package/dist/domains/skill/find.js.map +1 -1
- package/dist/domains/skill/json-object.d.ts +13 -0
- package/dist/domains/skill/json-object.d.ts.map +1 -0
- package/dist/domains/skill/json-object.js +24 -0
- package/dist/domains/skill/json-object.js.map +1 -0
- package/dist/domains/skill/managed-markdown.d.ts +14 -0
- package/dist/domains/skill/managed-markdown.d.ts.map +1 -0
- package/dist/domains/skill/managed-markdown.js +126 -0
- package/dist/domains/skill/managed-markdown.js.map +1 -0
- package/dist/domains/skill/platform-inspect.d.ts +9 -0
- package/dist/domains/skill/platform-inspect.d.ts.map +1 -0
- package/dist/domains/skill/platform-inspect.js +149 -0
- package/dist/domains/skill/platform-inspect.js.map +1 -0
- package/dist/domains/skill/platform-install.d.ts +20 -9
- package/dist/domains/skill/platform-install.d.ts.map +1 -1
- package/dist/domains/skill/platform-install.js +356 -153
- package/dist/domains/skill/platform-install.js.map +1 -1
- package/dist/domains/skill/project-instructions.d.ts +22 -0
- package/dist/domains/skill/project-instructions.d.ts.map +1 -0
- package/dist/domains/skill/project-instructions.js +61 -0
- package/dist/domains/skill/project-instructions.js.map +1 -0
- package/dist/domains/skill/uninstall.d.ts +3 -1
- package/dist/domains/skill/uninstall.d.ts.map +1 -1
- package/dist/domains/skill/uninstall.js +259 -149
- package/dist/domains/skill/uninstall.js.map +1 -1
- package/dist/platform/fs/file-system.d.ts +3 -3
- package/dist/platform/fs/file-system.d.ts.map +1 -1
- package/dist/platform/fs/file-system.js +21 -11
- package/dist/platform/fs/file-system.js.map +1 -1
- package/dist/platform/install/detect.d.ts +2 -1
- package/dist/platform/install/detect.d.ts.map +1 -1
- package/dist/platform/install/detect.js +10 -1
- package/dist/platform/install/detect.js.map +1 -1
- package/dist/platform/install/platforms.d.ts +9 -1
- package/dist/platform/install/platforms.d.ts.map +1 -1
- package/dist/platform/install/platforms.js +23 -4
- package/dist/platform/install/platforms.js.map +1 -1
- package/dist/platform/install/project-registry.d.ts +38 -0
- package/dist/platform/install/project-registry.d.ts.map +1 -0
- package/dist/platform/install/project-registry.js +213 -0
- package/dist/platform/install/project-registry.js.map +1 -0
- package/dist/platform/install/skill-root-owner.d.ts +15 -0
- package/dist/platform/install/skill-root-owner.d.ts.map +1 -0
- package/dist/platform/install/skill-root-owner.js +68 -0
- package/dist/platform/install/skill-root-owner.js.map +1 -0
- package/eval/.env.example +52 -0
- package/eval/CLAUDE.md +43 -0
- package/eval/README.md +538 -0
- package/eval/langsmith/.env.example +16 -0
- package/eval/langsmith/README.md +93 -0
- package/eval/langsmith/skills/README.md +5 -0
- package/eval/langsmith/tasks/README.md +5 -0
- package/eval/langsmith/tests/conftest.py +187 -0
- package/eval/langsmith/tests/tasks/test_tasks.py +287 -0
- package/eval/langsmith/treatments/README.md +5 -0
- package/eval/local/README.md +80 -0
- package/eval/local/regression_baseline.json +13 -0
- package/eval/local/report-style-demo-assets/quality_cost.en.svg +41 -0
- package/eval/local/report-style-demo-assets/quality_cost.zh.svg +41 -0
- package/eval/local/report-style-demo-assets/rubric_delta.en.svg +56 -0
- package/eval/local/report-style-demo-assets/rubric_delta.zh.svg +56 -0
- package/eval/local/report-style-demo-assets/task_outcomes.en.svg +46 -0
- package/eval/local/report-style-demo-assets/task_outcomes.zh.svg +46 -0
- package/eval/local/report-style-demo.html +867 -0
- package/eval/local/scripts/compare_baselines.py +1018 -0
- package/eval/local/scripts/generate_report_style_demo_charts.py +322 -0
- package/eval/local/scripts/regression_check.py +171 -0
- package/eval/local/scripts/render_readme_benchmark_figures.py +416 -0
- package/eval/local/scripts/rescore_rubric.py +120 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/SKILL.md +282 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/auto-transition.md +27 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/comet-yaml-fields.md +68 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/context-recovery.md +35 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/debug-gate.md +17 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/decision-point.md +20 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/dirty-worktree.md +59 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/file-structure.md +28 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/subagent-dispatch.md +113 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/rules/comet-phase-guard.md +125 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-archive.sh +311 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-env.sh +110 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-guard.sh +778 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-handoff.sh +390 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-hook-guard.sh +336 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-state.sh +1338 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-yaml-validate.sh +225 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-archive/SKILL.md +100 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-build/SKILL.md +304 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-design/SKILL.md +263 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-hotfix/SKILL.md +204 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-open/SKILL.md +220 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-tweak/SKILL.md +180 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-verify/SKILL.md +234 -0
- package/eval/local/skills/benchmarks/040-beta/comet/SKILL.md +261 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/auto-transition.md +27 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/comet-yaml-fields.md +73 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/context-recovery.md +45 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/debug-gate.md +33 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/decision-point.md +31 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/dirty-worktree.md +59 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/file-structure.md +28 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/intent-frame.md +74 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/scripts.md +69 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/subagent-dispatch.md +169 -0
- package/eval/local/skills/benchmarks/040-beta/comet/rules/comet-phase-guard.md +130 -0
- package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/checks.yaml +6 -0
- package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/guardrails.yaml +13 -0
- package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/skill.yaml +122 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-archive.mjs +9515 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-env.mjs +15 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-guard.mjs +10173 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-handoff.mjs +9491 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-hook-guard.mjs +9175 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-intent.mjs +404 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-state.mjs +9273 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-yaml-validate.mjs +7627 -0
- package/eval/local/skills/benchmarks/040-beta/comet-archive/SKILL.md +110 -0
- package/eval/local/skills/benchmarks/040-beta/comet-build/SKILL.md +315 -0
- package/eval/local/skills/benchmarks/040-beta/comet-design/SKILL.md +260 -0
- package/eval/local/skills/benchmarks/040-beta/comet-hotfix/SKILL.md +190 -0
- package/eval/local/skills/benchmarks/040-beta/comet-open/SKILL.md +210 -0
- package/eval/local/skills/benchmarks/040-beta/comet-tweak/SKILL.md +183 -0
- package/eval/local/skills/benchmarks/040-beta/comet-verify/SKILL.md +230 -0
- package/eval/local/skills/benchmarks/dependency/claude-md/comet-workflow/CLAUDE.md +12 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-apply-change/SKILL.md +156 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-archive-change/SKILL.md +114 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-continue-change/SKILL.md +118 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-explore/SKILL.md +288 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-ff-change/SKILL.md +101 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-new-change/SKILL.md +74 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-onboard/SKILL.md +554 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-propose/SKILL.md +110 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-sync-specs/SKILL.md +138 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-verify-change/SKILL.md +168 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/SKILL.md +159 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/frame-template.html +213 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/helper.js +167 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/server.cjs +723 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/start-server.sh +209 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/stop-server.sh +120 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/visual-companion.md +291 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/dispatching-parallel-agents/SKILL.md +185 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/executing-plans/SKILL.md +70 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/finishing-a-development-branch/SKILL.md +241 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/receiving-code-review/SKILL.md +213 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/SKILL.md +103 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/code-reviewer.md +172 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/SKILL.md +418 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/implementer-prompt.md +139 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/review-package +44 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/sdd-workspace +22 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/task-brief +40 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/task-reviewer-prompt.md +188 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/SKILL.md +296 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/defense-in-depth.md +122 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/find-polluter.sh +63 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-academic.md +14 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-1.md +58 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-2.md +68 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-3.md +69 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/SKILL.md +371 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/using-git-worktrees/SKILL.md +202 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/verification-before-completion/SKILL.md +139 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/SKILL.md +174 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/SKILL.md +689 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/graphviz-conventions.dot +172 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/persuasion-principles.md +187 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/render-graphs.js +168 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
- package/eval/local/tasks/authoring-skill-smoke/environment/Dockerfile +2 -0
- package/eval/local/tasks/authoring-skill-smoke/instruction.md +4 -0
- package/eval/local/tasks/authoring-skill-smoke/task.toml +21 -0
- package/eval/local/tasks/authoring-skill-smoke/validation/test_authoring_skill_smoke.py +54 -0
- package/eval/local/tasks/comet-agent-memory-routing/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-agent-memory-routing/environment/agent_system.py +40 -0
- package/eval/local/tasks/comet-agent-memory-routing/environment/test_agent_system.py +29 -0
- package/eval/local/tasks/comet-agent-memory-routing/instruction.md +20 -0
- package/eval/local/tasks/comet-agent-memory-routing/task.toml +24 -0
- package/eval/local/tasks/comet-agent-memory-routing/validation/test_agent_memory_routing.py +24 -0
- package/eval/local/tasks/comet-api-cache-ttl/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-api-cache-ttl/environment/cache.py +39 -0
- package/eval/local/tasks/comet-api-cache-ttl/environment/test_cache.py +81 -0
- package/eval/local/tasks/comet-api-cache-ttl/instruction.md +33 -0
- package/eval/local/tasks/comet-api-cache-ttl/task.toml +24 -0
- package/eval/local/tasks/comet-api-cache-ttl/validation/test_api_cache_ttl.py +58 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/cli.py +13 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/counting.py +13 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/test_textkit.py +21 -0
- package/eval/local/tasks/comet-cross-file-refactor/instruction.md +16 -0
- package/eval/local/tasks/comet-cross-file-refactor/task.toml +20 -0
- package/eval/local/tasks/comet-cross-file-refactor/validation/test_cross_file_refactor.py +20 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/app.py +8 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/settings_loader.py +14 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/test_settings_service.py +19 -0
- package/eval/local/tasks/comet-dependency-confusion/instruction.md +18 -0
- package/eval/local/tasks/comet-dependency-confusion/task.toml +24 -0
- package/eval/local/tasks/comet-dependency-confusion/validation/test_dependency_confusion.py +24 -0
- package/eval/local/tasks/comet-fix-median/environment/Dockerfile +50 -0
- package/eval/local/tasks/comet-fix-median/environment/stats.py +54 -0
- package/eval/local/tasks/comet-fix-median/environment/test_stats.py +68 -0
- package/eval/local/tasks/comet-fix-median/instruction.md +25 -0
- package/eval/local/tasks/comet-fix-median/task.toml +24 -0
- package/eval/local/tasks/comet-fix-median/validation/test_fix_median.py +60 -0
- package/eval/local/tasks/comet-framework-selection/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-framework-selection/environment/architecture.py +12 -0
- package/eval/local/tasks/comet-framework-selection/environment/test_architecture.py +30 -0
- package/eval/local/tasks/comet-framework-selection/instruction.md +22 -0
- package/eval/local/tasks/comet-framework-selection/task.toml +24 -0
- package/eval/local/tasks/comet-framework-selection/validation/test_framework_selection.py +24 -0
- package/eval/local/tasks/comet-full-workflow/environment/Dockerfile +53 -0
- package/eval/local/tasks/comet-full-workflow/environment/test_wordcount.py +29 -0
- package/eval/local/tasks/comet-full-workflow/environment/wordcount.py +40 -0
- package/eval/local/tasks/comet-full-workflow/instruction.md +18 -0
- package/eval/local/tasks/comet-full-workflow/task.toml +24 -0
- package/eval/local/tasks/comet-full-workflow/validation/test_full_workflow.py +171 -0
- package/eval/local/tasks/comet-graph-execution-review/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-graph-execution-review/environment/pipeline.py +19 -0
- package/eval/local/tasks/comet-graph-execution-review/environment/test_pipeline.py +53 -0
- package/eval/local/tasks/comet-graph-execution-review/instruction.md +21 -0
- package/eval/local/tasks/comet-graph-execution-review/task.toml +24 -0
- package/eval/local/tasks/comet-graph-execution-review/validation/test_graph_execution_review.py +24 -0
- package/eval/local/tasks/comet-human-approval-flow/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-human-approval-flow/environment/approvals.py +17 -0
- package/eval/local/tasks/comet-human-approval-flow/environment/test_approvals.py +30 -0
- package/eval/local/tasks/comet-human-approval-flow/instruction.md +15 -0
- package/eval/local/tasks/comet-human-approval-flow/task.toml +20 -0
- package/eval/local/tasks/comet-human-approval-flow/validation/test_human_approval_flow.py +20 -0
- package/eval/local/tasks/comet-layered-streaming-fix/environment/Dockerfile +20 -0
- package/eval/local/tasks/comet-layered-streaming-fix/environment/chat_app.py +19 -0
- package/eval/local/tasks/comet-layered-streaming-fix/environment/test_chat_app.py +15 -0
- package/eval/local/tasks/comet-layered-streaming-fix/instruction.md +14 -0
- package/eval/local/tasks/comet-layered-streaming-fix/task.toml +20 -0
- package/eval/local/tasks/comet-layered-streaming-fix/validation/test_layered_streaming_fix.py +20 -0
- package/eval/local/tasks/comet-noise-distractor/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-noise-distractor/environment/distractor.md +4 -0
- package/eval/local/tasks/comet-noise-distractor/environment/invoice.py +5 -0
- package/eval/local/tasks/comet-noise-distractor/environment/test_invoice.py +18 -0
- package/eval/local/tasks/comet-noise-distractor/instruction.md +17 -0
- package/eval/local/tasks/comet-noise-distractor/task.toml +20 -0
- package/eval/local/tasks/comet-noise-distractor/validation/test_noise_distractor.py +20 -0
- package/eval/local/tasks/comet-observability-env-template/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-observability-env-template/environment/env_writer.py +17 -0
- package/eval/local/tasks/comet-observability-env-template/environment/test_env_writer.py +17 -0
- package/eval/local/tasks/comet-observability-env-template/instruction.md +20 -0
- package/eval/local/tasks/comet-observability-env-template/task.toml +20 -0
- package/eval/local/tasks/comet-observability-env-template/validation/test_observability_env_template.py +46 -0
- package/eval/local/tasks/comet-perf-dedupe/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-perf-dedupe/environment/dedupe.py +22 -0
- package/eval/local/tasks/comet-perf-dedupe/environment/test_dedupe.py +43 -0
- package/eval/local/tasks/comet-perf-dedupe/instruction.md +25 -0
- package/eval/local/tasks/comet-perf-dedupe/task.toml +24 -0
- package/eval/local/tasks/comet-perf-dedupe/validation/test_perf_dedupe.py +40 -0
- package/eval/local/tasks/comet-persistence-threading/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-persistence-threading/environment/session_store.py +15 -0
- package/eval/local/tasks/comet-persistence-threading/environment/test_session_store.py +21 -0
- package/eval/local/tasks/comet-persistence-threading/instruction.md +14 -0
- package/eval/local/tasks/comet-persistence-threading/task.toml +20 -0
- package/eval/local/tasks/comet-persistence-threading/validation/test_persistence_threading.py +20 -0
- package/eval/local/tasks/comet-refactor-counter/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-refactor-counter/environment/test_text_processor.py +57 -0
- package/eval/local/tasks/comet-refactor-counter/environment/text_processor.py +49 -0
- package/eval/local/tasks/comet-refactor-counter/instruction.md +31 -0
- package/eval/local/tasks/comet-refactor-counter/task.toml +24 -0
- package/eval/local/tasks/comet-refactor-counter/validation/test_refactor_counter.py +75 -0
- package/eval/local/tasks/comet-robust-config/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-robust-config/environment/config_loader.py +56 -0
- package/eval/local/tasks/comet-robust-config/environment/test_config_loader.py +72 -0
- package/eval/local/tasks/comet-robust-config/instruction.md +30 -0
- package/eval/local/tasks/comet-robust-config/task.toml +24 -0
- package/eval/local/tasks/comet-robust-config/validation/test_robust_config.py +37 -0
- package/eval/local/tasks/generic-skill-smoke/environment/Dockerfile +2 -0
- package/eval/local/tasks/generic-skill-smoke/instruction.md +7 -0
- package/eval/local/tasks/generic-skill-smoke/task.toml +21 -0
- package/eval/local/tasks/generic-skill-smoke/validation/test_generic_skill_smoke.py +36 -0
- package/eval/local/tasks/index.yaml +155 -0
- package/eval/local/tasks/workflow-overlay-contract/environment/Dockerfile +5 -0
- package/eval/local/tasks/workflow-overlay-contract/instruction.md +5 -0
- package/eval/local/tasks/workflow-overlay-contract/task.toml +21 -0
- package/eval/local/tasks/workflow-overlay-contract/validation/test_workflow_overlay_contract.py +235 -0
- package/eval/local/tasks/workflow-route-conformance/environment/Dockerfile +2 -0
- package/eval/local/tasks/workflow-route-conformance/instruction.md +5 -0
- package/eval/local/tasks/workflow-route-conformance/task.toml +21 -0
- package/eval/local/tasks/workflow-route-conformance/validation/test_workflow_route_conformance.py +84 -0
- package/eval/local/tests/conftest.py +1148 -0
- package/eval/local/tests/scaffold/test_attribution.py +48 -0
- package/eval/local/tests/scaffold/test_compare_baselines.py +999 -0
- package/eval/local/tests/scaffold/test_conftest_helpers.py +534 -0
- package/eval/local/tests/scaffold/test_evidence.py +15 -0
- package/eval/local/tests/scaffold/test_langsmith_conftest.py +244 -0
- package/eval/local/tests/scaffold/test_logging.py +243 -0
- package/eval/local/tests/scaffold/test_manifests.py +132 -0
- package/eval/local/tests/scaffold/test_profiles.py +866 -0
- package/eval/local/tests/scaffold/test_regression_check.py +19 -0
- package/eval/local/tests/scaffold/test_report_style_demo_charts.py +45 -0
- package/eval/local/tests/scaffold/test_sample_quality.py +211 -0
- package/eval/local/tests/scaffold/test_tasks.py +168 -0
- package/eval/local/tests/scaffold/test_treatments.py +244 -0
- package/eval/local/tests/scaffold/test_utils.py +139 -0
- package/eval/local/tests/tasks/test_tasks.py +445 -0
- package/eval/local/tests/tasks/test_validation_scripts.py +143 -0
- package/eval/local/treatments/comet/comet_full_039.yaml +141 -0
- package/eval/local/treatments/comet/comet_full_040_beta.yaml +140 -0
- package/eval/local/treatments/common/control.yaml +4 -0
- package/eval/pyproject.toml +41 -0
- package/eval/report-html-config.json +6 -0
- package/eval/scaffold/__init__.py +67 -0
- package/eval/scaffold/python/__init__.py +95 -0
- package/eval/scaffold/python/attribution.py +43 -0
- package/eval/scaffold/python/evidence.py +38 -0
- package/eval/scaffold/python/external_data_handler.py +18 -0
- package/eval/scaffold/python/generic_llm_judge.py +235 -0
- package/eval/scaffold/python/judge_config.py +168 -0
- package/eval/scaffold/python/llm_judge.py +191 -0
- package/eval/scaffold/python/logging.py +705 -0
- package/eval/scaffold/python/manifests.py +129 -0
- package/eval/scaffold/python/paper_charts.py +25 -0
- package/eval/scaffold/python/pass_at_k.py +107 -0
- package/eval/scaffold/python/paths.py +56 -0
- package/eval/scaffold/python/profiles.py +127 -0
- package/eval/scaffold/python/report_outputs.py +1391 -0
- package/eval/scaffold/python/sample_quality.py +339 -0
- package/eval/scaffold/python/schema.py +39 -0
- package/eval/scaffold/python/skill_parser.py +469 -0
- package/eval/scaffold/python/tasks.py +330 -0
- package/eval/scaffold/python/treatments.py +271 -0
- package/eval/scaffold/python/utils.py +366 -0
- package/eval/scaffold/python/validation/__init__.py +21 -0
- package/eval/scaffold/python/validation/authoring_rubric.py +326 -0
- package/eval/scaffold/python/validation/comet_workflow.py +187 -0
- package/eval/scaffold/python/validation/core.py +264 -0
- package/eval/scaffold/python/validation/dataset.py +337 -0
- package/eval/scaffold/python/validation/docker.py +106 -0
- package/eval/scaffold/python/validation/evaluator.py +549 -0
- package/eval/scaffold/python/validation/generic_rubric.py +169 -0
- package/eval/scaffold/python/validation/rubric.py +740 -0
- package/eval/scaffold/python/validation/runner.py +237 -0
- package/eval/scaffold/python/validation/scripts.py +58 -0
- package/eval/scaffold/python/validation/tracing.py +313 -0
- package/eval/scaffold/shell/common.sh +126 -0
- package/eval/scaffold/shell/docker.sh +482 -0
- package/eval/scaffold/shell/run-claude-loop.sh +181 -0
- package/eval/scaffold/shell/setup.sh +259 -0
- package/eval/simulator-instruction.md +9 -0
- package/package.json +29 -2
- package/dist/domains/dashboard/web/assets/index-BcO3_QlT.css +0 -1
- package/dist/domains/dashboard/web/assets/index-CjU3VXVu.js +0 -22
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: comet-verify
|
|
3
|
-
description: "
|
|
3
|
+
description: "仅在用户明确调用 /comet-verify,或由 Comet 根 Skill/runtime 路由到 verify 阶段时使用;验证 Comet change、记录证据并处理修复循环。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Comet 阶段 4
|
|
6
|
+
# Comet 阶段 4:验证(Verify)
|
|
7
7
|
|
|
8
8
|
## 前置条件
|
|
9
9
|
|
|
@@ -14,88 +14,89 @@ description: "Use when Comet change 已完成 build 阶段,需要验证实现
|
|
|
14
14
|
|
|
15
15
|
### 0a. 输出语言约束
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
验证报告必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
|
|
18
18
|
|
|
19
19
|
### 0b. 入口状态验证(Entry Check)
|
|
20
20
|
|
|
21
|
-
按 `comet/reference/scripts.md`
|
|
21
|
+
按 `comet/reference/scripts.md` 使用稳定 `comet` CLI,然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
24
|
+
comet state select <change-name>
|
|
25
|
+
comet state check <change-name> verify
|
|
25
26
|
```
|
|
26
27
|
|
|
27
28
|
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
28
29
|
|
|
29
|
-
**幂等性**:verify 阶段所有检查可安全重复执行。如 `verify_result` 已为 `pass
|
|
30
|
+
**幂等性**:verify 阶段所有检查可安全重复执行。如 `verify_result` 已为 `pass`,说明验证已完成并应进入 archive;`branch_status` 在归档提交和最终分支处理完成前保持 `pending`。如 `verify_result` 为 `pending`,从头开始验证。
|
|
30
31
|
|
|
31
32
|
### 1. 改动规模评估
|
|
32
33
|
|
|
33
34
|
执行规模评估:
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
|
-
|
|
37
|
+
comet state scale <change-name>
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
脚本自动统计任务数、增量规格数、变更文件数,判断使用 light 或 full 验证模式,并设置 verify_mode 字段。判定规则(满足任一即 full):任务数 > 3、delta spec 能力数 > 1、变更文件数 > 8。
|
|
40
41
|
|
|
41
42
|
验证开始前,按 `comet/reference/dirty-worktree.md` 协议检查并处理未提交改动。verify 阶段的特殊处理:
|
|
42
43
|
|
|
43
|
-
1. 若 dirty diff
|
|
44
|
-
2. 若 dirty diff 只是 verify
|
|
45
|
-
3. 若 dirty diff
|
|
44
|
+
1. 若 dirty diff 明确属于当前 change,它就是本次验证输入;继续验证,但不在 verify 阶段修改或提交实现、测试、tasks、delta spec 或 Design Doc
|
|
45
|
+
2. 若 dirty diff 只是 verify 本阶段产物(例如验证报告草稿),可继续在 verify 阶段完成并记录状态
|
|
46
|
+
3. 若 dirty diff 显示实现已存在但 tasks.md 未勾选,视为 build 状态滞后;这是只有一个合法下一步的自动处理,运行 `verify-fail` 返回 build 核对证据并更新任务状态,不得询问是否接受未完成任务
|
|
47
|
+
4. 若 dirty diff 无法归因或属于其他 change,按 dirty-worktree 协议报告停止条件;不要把归因失败伪装成“继续/忽略”决策
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
需要回到 build 修复或补齐状态时运行:
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
|
-
|
|
51
|
-
node "$COMET_STATE" transition <change-name> verify-fail
|
|
52
|
+
comet state transition <change-name> verify-fail
|
|
52
53
|
```
|
|
53
54
|
|
|
54
|
-
注意:verify-fail 回退到 build 时 `branch_status` 不会被重置。如果首次 verify 已完成分支处理,修复后再次进入 verify 时跳过已完成的分支处理步骤,直接使用 `node "$COMET_STATE" set <change-name> branch_status handled` 保留原有分支处理结果。
|
|
55
|
-
|
|
56
55
|
注意:如果 build 阶段每个任务都已提交,脚本基于工作区 diff 的文件数可能低估改动规模。此时必须读取 plan 文件头的 `base-ref` 并用提交区间复核:
|
|
57
56
|
|
|
58
57
|
```bash
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
git diff --stat "$BASE_REF"...HEAD
|
|
58
|
+
comet state get <change-name> plan
|
|
59
|
+
git diff --stat <从 plan frontmatter 读取的 base-ref>...HEAD
|
|
62
60
|
```
|
|
63
61
|
|
|
62
|
+
第一条命令返回 plan 路径;使用当前平台的文件读取能力解析其 frontmatter 中唯一的 `base-ref`,确认它是有效提交后再代入第二条命令。不得依赖 POSIX 文本管道。
|
|
63
|
+
|
|
64
64
|
若提交区间显示改动超过轻量阈值(> 8 个文件、跨模块协调、或 delta spec 超过 1 个 capability),手动设置为完整验证:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
|
|
67
|
+
comet state set <change-name> verify_mode full
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
**覆盖机制**:如 agent 或用户认为自动评估结果不合适,可随时通过 `
|
|
70
|
+
**覆盖机制**:如 agent 或用户认为自动评估结果不合适,可随时通过 `comet state set <change-name> verify_mode <light|full>` 手动覆盖。
|
|
71
71
|
|
|
72
|
-
### 1b.
|
|
72
|
+
### 1b. 验证失败自动修复与例外决策
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
先运行 `comet state get <change-name> verify_failures` 读取已持久化的连续失败次数。前 3 次可修复失败自动回到 build:报告失败项后运行 `comet state transition <change-name> verify-fail`,再调用 `/comet-build` 修复,不需要用户确认。
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
报告必须列出:
|
|
77
77
|
- 失败项
|
|
78
78
|
- 是否属于 CRITICAL 或 IMPORTANT(构建失败、测试失败、安全问题、核心验收场景失败、简化代码审查发现的正确性/安全/边界问题)
|
|
79
79
|
- 推荐处理方式
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
**不确定性原则**:无法确定严重程度时使用较低级别。仅对构建失败、测试失败、安全问题使用 CRITICAL;明确影响核心验收或正确性的项使用 IMPORTANT;模糊或不确定的问题标为 WARNING 或 SUGGESTION。
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
83
|
+
按以下方式处理:
|
|
84
|
+
- **CRITICAL/IMPORTANT 或范围内可明确修复的问题**:未达到上限时自动回到 build 修复;不得创建“是否修复”的伪决策,也不允许接受偏差
|
|
85
|
+
- **WARNING/SUGGESTION 且修复会引入行为、范围或风险取舍**:按 `comet/reference/decision-point.md` 让用户选择修复或接受偏差;接受时必须在验证报告中记录原因和影响范围
|
|
86
|
+
- **WARNING/SUGGESTION 且修复安全、局部、无取舍**:未达到上限时自动修复,不因级别较低而强制停顿
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
只有接受 WARNING/SUGGESTION 偏差或第 4 次失败后的策略选择才是用户决策点。当前 `verify_failures >= 3` 时不得自动执行下一次 `verify-fail`;按协议只提供「继续修复」或「停止当前 workflow 并寻求外部决策」两个选项。用户选择继续后才记录下一次失败并回到 build。CRITICAL/IMPORTANT 始终不可豁免。
|
|
88
89
|
|
|
89
90
|
### 2. 产物上下文加载(Hash 按需读)
|
|
90
91
|
|
|
91
92
|
验证需要读取 OpenSpec 产物时,先检查产物是否自 design 阶段以来发生变化:
|
|
92
93
|
|
|
93
94
|
```bash
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
comet state get <change-name> handoff_hash
|
|
96
|
+
comet handoff <change-name> --hash-only
|
|
96
97
|
```
|
|
97
98
|
|
|
98
|
-
-
|
|
99
|
+
- 分别读取两条命令的标准输出;若记录值与当前值相等,且均非空、非 `null`:OpenSpec 产物未变化,**tasks.md 无需重新读取全文**(解析复选框确认无未完成项即可)。proposal.md、design.md、delta spec 仍需读取用于对照检查。
|
|
99
100
|
- 若 `RECORDED_HASH` 为空、为 `null`、或与 `CURRENT_HASH` 不一致:产物已变化或 hash 未记录,正常读取所有所需文件全文。
|
|
100
101
|
|
|
101
102
|
此优化仅跳过 tasks.md 的重复全文读取。proposal.md 和 design.md 包含验证检查项所需的完整上下文,不得因 hash 匹配而跳过。
|
|
@@ -115,17 +116,24 @@ CURRENT_HASH=$(node "$COMET_HANDOFF" <change-name> --hash-only 2>/dev/null || ec
|
|
|
115
116
|
5. 无明显安全问题(无硬编码密钥、无新增 unsafe 操作)
|
|
116
117
|
6. 代码审查策略:当 `review_mode: standard` 或 `thorough` 时,必须使用 Skill 工具加载 Superpowers `requesting-code-review` 技能,请求只检查正确性、安全、边界条件的轻量代码审查;当 `review_mode: off` 时跳过自动代码审查,并在验证报告中记录跳过原因
|
|
117
118
|
|
|
118
|
-
|
|
119
|
+
若项目没有可自动探测的验证命令,用户或 Agent 必须先自行运行真实验证命令,再单独记录验证证据:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
comet state record-check <change-name> verify --command "<实际运行的验证命令>" --exit-code 0
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
`--command` 只记录命令文本,Comet **绝不会执行该文本**。verify 与 build 证据彼此独立,不能互相替代;即使兼容流程使用 `COMET_SKIP_BUILD=1`,也不能把该绕过标记视为可审计的验证或构建证据。
|
|
126
|
+
|
|
127
|
+
简化代码审查的输入应限定为本次改动 diff、tasks.md 和必要的测试结果;审查范围只覆盖实现正确性、安全风险和边界条件,不执行 spec 覆盖率、Design Doc 一致性或漂移检查。若审查发现 CRITICAL 或 IMPORTANT 问题,按 Step 1b 的自动修复/重试规则处理。`review_mode: off` 只跳过自动 code review,不跳过构建、测试、安全检查或异常调试协议。
|
|
119
128
|
|
|
120
129
|
**与 build 阶段审查的去重**:若 build 阶段(`executing-plans` 或 `subagent-driven-development`)已按 `review_mode` 对同一 diff 完成最终代码审查,verify 的这次轻量审查聚焦「实现是否符合 spec/tasks 的正确性」与「build 之后新增的改动」,不重复评审 build 已审过且未变化的 diff。
|
|
121
130
|
|
|
122
131
|
**通过标准**:6 项全部 OK,无 CRITICAL 或 IMPORTANT 问题。
|
|
123
132
|
|
|
124
|
-
|
|
133
|
+
**不通过时**:报告失败项并按 Step 1b 分类。未达到自动修复上限且问题必须或适合修复时,直接执行以下命令回到 build 阶段,然后调用 `/comet-build`:
|
|
125
134
|
|
|
126
135
|
```bash
|
|
127
|
-
|
|
128
|
-
node "$COMET_STATE" transition <change-name> verify-fail
|
|
136
|
+
comet state transition <change-name> verify-fail
|
|
129
137
|
```
|
|
130
138
|
|
|
131
139
|
**报告格式**:简表列出 6 项检查结果 + PASS/FAIL。
|
|
@@ -151,62 +159,39 @@ node "$COMET_STATE" transition <change-name> verify-fail
|
|
|
151
159
|
6. delta spec 与 design doc 无矛盾(若 Build 阶段有增量修改 spec,检查 design doc 是否有对应记录)
|
|
152
160
|
7. `docs/superpowers/specs/` 关联的设计文档可定位(文件存在且与当前 change 相关)
|
|
153
161
|
|
|
154
|
-
|
|
162
|
+
验证不通过时:报告缺失项并按 Step 1b 分类。未达到自动修复上限且缺失项可在当前 change 内补齐时,直接执行以下命令回到 build 阶段,然后调用 `/comet-build`:
|
|
155
163
|
|
|
156
164
|
```bash
|
|
157
|
-
|
|
158
|
-
node "$COMET_STATE" transition <change-name> verify-fail
|
|
165
|
+
comet state transition <change-name> verify-fail
|
|
159
166
|
```
|
|
160
167
|
|
|
161
168
|
**Spec 漂移处理**(用户决策点):
|
|
162
169
|
- 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),**必须使用当前平台可用的用户输入/确认机制以单选题形式暂停并等待用户选择处理方式**,不得自动选择。选项:
|
|
163
170
|
- 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因。选项 A 属于 verify 阶段允许产物;写入后不得因该 design doc 变更再次触发 Step 1b dirty-worktree 决策
|
|
164
|
-
- 选项 B:用户选择 B 后,运行 `
|
|
171
|
+
- 选项 B:用户选择 B 后,运行 `comet state transition <change-name> verify-fail`,然后调用 `/comet-build`;由 `/comet-build` 的 Spec 增量更新规则加载 Superpowers `brainstorming` 更新 Design Doc + delta spec
|
|
165
172
|
- 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`)
|
|
166
173
|
|
|
167
|
-
### 3.
|
|
168
|
-
|
|
169
|
-
**立即执行:** 使用 Skill 工具加载 Superpowers `finishing-a-development-branch` 技能。禁止跳过此步骤。
|
|
174
|
+
### 3. 记录验证证据
|
|
170
175
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
技能加载后,按其指引收尾。分支处理选项:
|
|
174
|
-
1. 本地合并到主分支
|
|
175
|
-
2. 推送并创建 PR
|
|
176
|
-
3. 保持分支(稍后处理)
|
|
177
|
-
4. 丢弃工作
|
|
178
|
-
|
|
179
|
-
这是用户决策点。**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户选择分支处理方式**,不得根据推荐、默认值或当前分支状态自行选择。只有在用户完成选择且对应操作完成后,才允许写入 `branch_status: handled`。
|
|
180
|
-
|
|
181
|
-
**确认项**:
|
|
182
|
-
- 全部测试通过
|
|
183
|
-
- 无硬编码密钥或安全问题
|
|
184
|
-
|
|
185
|
-
### 4. 记录验证证据
|
|
186
|
-
|
|
187
|
-
验证报告必须落盘,并在 `.comet.yaml` 中记录;分支处理完成后也必须写入状态字段。不要手动设置 `verify_result: pass`,由阶段守卫 `--apply` 推进。
|
|
176
|
+
验证报告必须落盘,并在 `.comet.yaml` 中记录。不要在 verify 阶段处理、合并或丢弃分支,也不要写入 `branch_status: handled`;归档会产生必须包含在最终提交中的 spec 和元数据改动,分支收尾统一由 `/comet-archive` 在归档提交后执行。不要手动设置 `verify_result: pass`,由阶段守卫 `--apply` 推进。
|
|
188
177
|
|
|
189
178
|
```bash
|
|
190
|
-
|
|
191
|
-
# 将本次验证结论写入报告文件,例如:
|
|
192
|
-
# docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
193
|
-
|
|
194
|
-
node "$COMET_STATE" set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
195
|
-
node "$COMET_STATE" set <change-name> branch_status handled
|
|
179
|
+
comet state set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
196
180
|
```
|
|
197
181
|
|
|
182
|
+
使用当前平台的文件能力创建 `docs/superpowers/reports/` 和报告文件,不依赖 POSIX 专用目录命令。
|
|
183
|
+
|
|
198
184
|
## 退出条件
|
|
199
185
|
|
|
200
186
|
- 验证报告通过
|
|
201
|
-
- 分支已处理
|
|
202
187
|
- `.comet.yaml` 中 `verification_report` 指向已存在的验证报告文件
|
|
203
|
-
- `.comet.yaml` 中 `branch_status
|
|
204
|
-
- **阶段守卫**:运行 `
|
|
188
|
+
- `.comet.yaml` 中 `branch_status` 仍为 `pending`
|
|
189
|
+
- **阶段守卫**:运行 `comet guard <change-name> verify --apply`,全部 PASS 后由守卫通过 `comet state transition verify-pass` 推进到 `phase: archive`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
|
|
205
190
|
|
|
206
|
-
|
|
191
|
+
验证证据完成后,运行阶段守卫推进 phase(此步骤与 `auto_transition` 无关):
|
|
207
192
|
|
|
208
193
|
```bash
|
|
209
|
-
|
|
194
|
+
comet guard <change-name> verify --apply
|
|
210
195
|
```
|
|
211
196
|
|
|
212
197
|
状态文件自动更新为 `phase: archive`、`verify_result: pass`、`verified_at: YYYY-MM-DD`。
|
|
@@ -220,11 +205,11 @@ node "$COMET_GUARD" <change-name> verify --apply
|
|
|
220
205
|
按 `comet/reference/auto-transition.md` 执行。关键命令:
|
|
221
206
|
|
|
222
207
|
```bash
|
|
223
|
-
|
|
208
|
+
comet state next <change-name>
|
|
224
209
|
```
|
|
225
210
|
|
|
226
211
|
- `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
|
|
227
|
-
- `NEXT: manual` →
|
|
212
|
+
- `NEXT: manual` → 不调用下一 skill,按 `HINT` 交还控制权并结束当前调用;不再创建确认点
|
|
228
213
|
- `NEXT: done` → 流程已完成,无需继续
|
|
229
214
|
|
|
230
215
|
注意:无论 `NEXT` 为 `auto` 还是 `manual`,`comet-archive` 进入后必须先执行归档前最终确认阻塞点,等待用户明确选择「确认归档」后才允许运行归档脚本。不得因为验证已通过就自动归档。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Writable } from 'node:stream';
|
|
2
|
+
export declare const COMET_TAGLINE = "Agent Skill Harness For Turning Ideas Into Evaluated Workflows";
|
|
3
|
+
export declare const COMET_LOGO: readonly [" ██████╗ ██████╗ ███╗ ███╗███████╗████████╗", " ██╔════╝██╔═══██╗████╗ ████║██╔════╝╚══██╔══╝", " ██║ ██║ ██║██╔████╔██║█████╗ ██║ ", " ██║ ██║ ██║██║╚██╔╝██║██╔══╝ ██║ ", " ╚██████╗╚██████╔╝██║ ╚═╝ ██║███████╗ ██║ ", " ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ "];
|
|
4
|
+
type AnimationPhase = 'preheat' | 'sweep' | 'settle';
|
|
5
|
+
export declare const COMET_BANNER_LINE_COUNT: number;
|
|
6
|
+
export declare function renderCometAnimationFrame(phase: AnimationPhase, progress: number): string;
|
|
7
|
+
export declare function renderCometBanner(options?: {
|
|
8
|
+
color?: boolean;
|
|
9
|
+
}): string;
|
|
10
|
+
export declare function renderCometBannerFrame(litColumns: number, particleFrame?: number): string;
|
|
11
|
+
export type BannerRuntime = {
|
|
12
|
+
isTTY: boolean;
|
|
13
|
+
env: NodeJS.ProcessEnv;
|
|
14
|
+
getColumns: () => number | undefined;
|
|
15
|
+
write: (chunk: string) => void | Promise<void>;
|
|
16
|
+
sleep: (milliseconds: number) => Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
export declare function createBannerStreamWriter(stream: Writable): BannerRuntime['write'];
|
|
19
|
+
export declare function canAnimateCometBanner(runtime: Pick<BannerRuntime, 'isTTY' | 'env' | 'getColumns'>): boolean;
|
|
20
|
+
export declare function printCometBanner(options?: {
|
|
21
|
+
enabled?: boolean;
|
|
22
|
+
runtime?: Partial<BannerRuntime>;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=comet-banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comet-banner.d.ts","sourceRoot":"","sources":["../../../app/cli/comet-banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,aAAa,mEAAmE,CAAC;AAE9F,eAAO,MAAM,UAAU,6TAOb,CAAC;AAGX,KAAK,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AA2BrD,eAAO,MAAM,uBAAuB,QAAwB,CAAC;AAqF7D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBzF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAQ3E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,MAAM,CAGpF;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAkCjF;AAkBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,KAAK,GAAG,YAAY,CAAC,GAC3D,OAAO,CAWT;AA+CD,wBAAsB,gBAAgB,CACpC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CAAO,GACpE,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
export const COMET_TAGLINE = 'Agent Skill Harness For Turning Ideas Into Evaluated Workflows';
|
|
2
|
+
export const COMET_LOGO = [
|
|
3
|
+
' ██████╗ ██████╗ ███╗ ███╗███████╗████████╗',
|
|
4
|
+
' ██╔════╝██╔═══██╗████╗ ████║██╔════╝╚══██╔══╝',
|
|
5
|
+
' ██║ ██║ ██║██╔████╔██║█████╗ ██║ ',
|
|
6
|
+
' ██║ ██║ ██║██║╚██╔╝██║██╔══╝ ██║ ',
|
|
7
|
+
' ╚██████╗╚██████╔╝██║ ╚═╝ ██║███████╗ ██║ ',
|
|
8
|
+
' ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ',
|
|
9
|
+
];
|
|
10
|
+
const RESET = '\u001b[0m';
|
|
11
|
+
const DIM_BLUE = [7, 31, 63];
|
|
12
|
+
const DEEP_BLUE = [22, 78, 154];
|
|
13
|
+
const BRAND_BLUE = [77, 197, 242];
|
|
14
|
+
const BRIGHT_BLUE = [88, 184, 255];
|
|
15
|
+
const TAGLINE_GOLD = [208, 151, 53];
|
|
16
|
+
const CLI_INDENT = ' ';
|
|
17
|
+
const LOGO_WIDTH = Math.max(...COMET_LOGO.map((line) => line.length));
|
|
18
|
+
const BANNER_WIDTH = Math.max(LOGO_WIDTH, CLI_INDENT.length + COMET_TAGLINE.length);
|
|
19
|
+
const LOGO_CONTENT_LEFT = Math.min(...COMET_LOGO.map((line) => {
|
|
20
|
+
const firstCharacter = line.search(/\S/);
|
|
21
|
+
return firstCharacter < 0 ? LOGO_WIDTH : firstCharacter;
|
|
22
|
+
}));
|
|
23
|
+
const LOGO_CONTENT_RIGHT = Math.max(...COMET_LOGO.map((line) => line.trimEnd().length));
|
|
24
|
+
const LOGO_OFFSET = CLI_INDENT.length +
|
|
25
|
+
Math.floor((COMET_TAGLINE.length - (LOGO_CONTENT_RIGHT - LOGO_CONTENT_LEFT)) / 2) -
|
|
26
|
+
LOGO_CONTENT_LEFT;
|
|
27
|
+
const FRAME_DELAY_MS = 50;
|
|
28
|
+
const PREHEAT_FRAMES = 6;
|
|
29
|
+
const SWEEP_FRAMES = 16;
|
|
30
|
+
const SETTLE_FRAMES = 14;
|
|
31
|
+
export const COMET_BANNER_LINE_COUNT = COMET_LOGO.length + 1;
|
|
32
|
+
function ansi([red, green, blue]) {
|
|
33
|
+
return `\u001b[38;2;${red};${green};${blue}m`;
|
|
34
|
+
}
|
|
35
|
+
function mix(from, to, progress) {
|
|
36
|
+
const amount = Math.max(0, Math.min(1, progress));
|
|
37
|
+
return from.map((value, index) => Math.round(value + (to[index] - value) * amount));
|
|
38
|
+
}
|
|
39
|
+
function taglineOnCanvas(text) {
|
|
40
|
+
const visibleText = text.trimEnd();
|
|
41
|
+
return `${CLI_INDENT}${visibleText}`.padEnd(BANNER_WIDTH);
|
|
42
|
+
}
|
|
43
|
+
function logoLineOnCanvas(line) {
|
|
44
|
+
return `${' '.repeat(LOGO_OFFSET)}${line}`.padEnd(BANNER_WIDTH);
|
|
45
|
+
}
|
|
46
|
+
function revealTaglineFromCenter(text, progress) {
|
|
47
|
+
const count = Math.min(text.length, Math.max(0, Math.ceil(text.length * progress)));
|
|
48
|
+
const start = Math.floor((text.length - count) / 2);
|
|
49
|
+
return `${CLI_INDENT}${' '.repeat(start)}${text.slice(start, start + count)}`.padEnd(BANNER_WIDTH);
|
|
50
|
+
}
|
|
51
|
+
function setParticle(canvas, column, particle) {
|
|
52
|
+
if (column >= 0 && column < canvas.length)
|
|
53
|
+
canvas[column] = particle;
|
|
54
|
+
}
|
|
55
|
+
function logoBounds() {
|
|
56
|
+
return {
|
|
57
|
+
start: LOGO_OFFSET + LOGO_CONTENT_LEFT,
|
|
58
|
+
end: LOGO_OFFSET + LOGO_CONTENT_RIGHT,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function particlesForPhase(canvas, row, phase, progress) {
|
|
62
|
+
const { start, end } = logoBounds();
|
|
63
|
+
if (phase === 'preheat') {
|
|
64
|
+
const lead = Math.round((start - 1) * progress);
|
|
65
|
+
if (row === 1)
|
|
66
|
+
setParticle(canvas, lead, '*');
|
|
67
|
+
if (row === 3)
|
|
68
|
+
setParticle(canvas, lead - 3, '·');
|
|
69
|
+
if (row === 4)
|
|
70
|
+
setParticle(canvas, lead - 5, '•');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (phase === 'sweep') {
|
|
74
|
+
const head = Math.round((BANNER_WIDTH + 8) * progress) - 4;
|
|
75
|
+
if (row === 1)
|
|
76
|
+
setParticle(canvas, head - 5, '·');
|
|
77
|
+
if (row === 2)
|
|
78
|
+
setParticle(canvas, head - 3, '*');
|
|
79
|
+
if (row === 4)
|
|
80
|
+
setParticle(canvas, head - 7, '•');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (progress >= 1)
|
|
84
|
+
return;
|
|
85
|
+
const energy = progress < 0.55 ? progress / 0.55 : (1 - progress) / 0.45;
|
|
86
|
+
const spread = Math.max(1, Math.round(energy * Math.max(1, BANNER_WIDTH - end - 1)));
|
|
87
|
+
if (row === 1)
|
|
88
|
+
setParticle(canvas, end + spread, '·');
|
|
89
|
+
if (row === 2)
|
|
90
|
+
setParticle(canvas, end + Math.max(1, spread - 2), '*');
|
|
91
|
+
if (row === 4)
|
|
92
|
+
setParticle(canvas, end + Math.max(1, Math.floor(spread / 2)), '•');
|
|
93
|
+
}
|
|
94
|
+
function colorForColumn(phase, progress, column) {
|
|
95
|
+
if (phase === 'preheat')
|
|
96
|
+
return mix(DIM_BLUE, DEEP_BLUE, progress);
|
|
97
|
+
if (phase === 'settle')
|
|
98
|
+
return BRAND_BLUE;
|
|
99
|
+
const head = Math.round((BANNER_WIDTH + 8) * progress) - 4;
|
|
100
|
+
const distance = head - column;
|
|
101
|
+
if (distance < -2)
|
|
102
|
+
return DEEP_BLUE;
|
|
103
|
+
if (distance <= 2)
|
|
104
|
+
return BRIGHT_BLUE;
|
|
105
|
+
if (distance <= 8)
|
|
106
|
+
return mix(BRIGHT_BLUE, BRAND_BLUE, distance / 8);
|
|
107
|
+
return BRAND_BLUE;
|
|
108
|
+
}
|
|
109
|
+
export function renderCometAnimationFrame(phase, progress) {
|
|
110
|
+
const amount = Math.max(0, Math.min(1, progress));
|
|
111
|
+
const logo = COMET_LOGO.map((line, row) => {
|
|
112
|
+
const canvas = [...logoLineOnCanvas(line)];
|
|
113
|
+
particlesForPhase(canvas, row, phase, amount);
|
|
114
|
+
return `${canvas
|
|
115
|
+
.map((character, column) => {
|
|
116
|
+
const particle = character === '·' || character === '•' || character === '*';
|
|
117
|
+
return `${ansi(particle ? BRIGHT_BLUE : colorForColumn(phase, amount, column))}${character}`;
|
|
118
|
+
})
|
|
119
|
+
.join('')}${RESET}`;
|
|
120
|
+
});
|
|
121
|
+
const taglineProgress = phase === 'settle' ? Math.max(0, (amount - 0.57) / 0.43) : 0;
|
|
122
|
+
const tagline = revealTaglineFromCenter(COMET_TAGLINE, taglineProgress);
|
|
123
|
+
return [...logo, `${ansi(TAGLINE_GOLD)}${tagline}${RESET}`].join('\n');
|
|
124
|
+
}
|
|
125
|
+
export function renderCometBanner(options = {}) {
|
|
126
|
+
const logo = options.color
|
|
127
|
+
? COMET_LOGO.map((line) => `${ansi(BRAND_BLUE)}${logoLineOnCanvas(line)}${RESET}`)
|
|
128
|
+
: COMET_LOGO.map(logoLineOnCanvas);
|
|
129
|
+
const tagline = options.color
|
|
130
|
+
? `${ansi(TAGLINE_GOLD)}${taglineOnCanvas(COMET_TAGLINE)}${RESET}`
|
|
131
|
+
: taglineOnCanvas(COMET_TAGLINE);
|
|
132
|
+
return [...logo, tagline].join('\n');
|
|
133
|
+
}
|
|
134
|
+
export function renderCometBannerFrame(litColumns, particleFrame = 0) {
|
|
135
|
+
const progress = Math.max(0, Math.min(1, litColumns / BANNER_WIDTH));
|
|
136
|
+
return renderCometAnimationFrame('sweep', Math.min(1, progress + particleFrame * 0.01));
|
|
137
|
+
}
|
|
138
|
+
const ERASE_LINE = '\u001b[2K';
|
|
139
|
+
export function createBannerStreamWriter(stream) {
|
|
140
|
+
return (chunk) => new Promise((resolve, reject) => {
|
|
141
|
+
let settled = false;
|
|
142
|
+
const cleanup = () => stream.removeListener('error', onError);
|
|
143
|
+
const onError = (error) => {
|
|
144
|
+
cleanup();
|
|
145
|
+
if (settled)
|
|
146
|
+
return;
|
|
147
|
+
settled = true;
|
|
148
|
+
reject(error);
|
|
149
|
+
};
|
|
150
|
+
stream.once('error', onError);
|
|
151
|
+
try {
|
|
152
|
+
stream.write(chunk, (error) => {
|
|
153
|
+
if (error) {
|
|
154
|
+
if (!settled) {
|
|
155
|
+
settled = true;
|
|
156
|
+
reject(error);
|
|
157
|
+
}
|
|
158
|
+
setImmediate(cleanup);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
cleanup();
|
|
162
|
+
if (settled)
|
|
163
|
+
return;
|
|
164
|
+
settled = true;
|
|
165
|
+
resolve();
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
cleanup();
|
|
170
|
+
settled = true;
|
|
171
|
+
reject(error);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
const defaultRuntime = {
|
|
176
|
+
isTTY: Boolean(process.stdout.isTTY),
|
|
177
|
+
env: process.env,
|
|
178
|
+
getColumns: () => process.stdout.columns,
|
|
179
|
+
write: createBannerStreamWriter(process.stdout),
|
|
180
|
+
sleep: (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds)),
|
|
181
|
+
};
|
|
182
|
+
function readColumns(runtime) {
|
|
183
|
+
return runtime.getColumns();
|
|
184
|
+
}
|
|
185
|
+
function isAutomated(env) {
|
|
186
|
+
return Boolean(env.CI && env.CI !== 'false');
|
|
187
|
+
}
|
|
188
|
+
export function canAnimateCometBanner(runtime) {
|
|
189
|
+
const noColor = Object.prototype.hasOwnProperty.call(runtime.env, 'NO_COLOR');
|
|
190
|
+
const columns = readColumns(runtime);
|
|
191
|
+
return (runtime.isTTY &&
|
|
192
|
+
!isAutomated(runtime.env) &&
|
|
193
|
+
!noColor &&
|
|
194
|
+
runtime.env.TERM !== 'dumb' &&
|
|
195
|
+
columns !== undefined &&
|
|
196
|
+
columns >= BANNER_WIDTH);
|
|
197
|
+
}
|
|
198
|
+
function staticFrameForRuntime() {
|
|
199
|
+
return renderCometBanner();
|
|
200
|
+
}
|
|
201
|
+
function animationFrameForRuntime(runtime, frame) {
|
|
202
|
+
const columns = readColumns(runtime);
|
|
203
|
+
if (columns === undefined || columns < BANNER_WIDTH)
|
|
204
|
+
throw new Error('terminal width changed');
|
|
205
|
+
return frame;
|
|
206
|
+
}
|
|
207
|
+
function replaceFrame(frame, first) {
|
|
208
|
+
const moveUp = first ? '' : `\u001b[${COMET_BANNER_LINE_COUNT}A`;
|
|
209
|
+
return `${moveUp}${frame
|
|
210
|
+
.split('\n')
|
|
211
|
+
.map((line) => `\r${ERASE_LINE}${line}`)
|
|
212
|
+
.join('\n')}\n`;
|
|
213
|
+
}
|
|
214
|
+
function clearRenderedFrame() {
|
|
215
|
+
const lines = Array.from({ length: COMET_BANNER_LINE_COUNT }, () => `\r${ERASE_LINE}`).join('\n');
|
|
216
|
+
return `\u001b[${COMET_BANNER_LINE_COUNT}A${lines}\n`;
|
|
217
|
+
}
|
|
218
|
+
async function writeSafely(runtime, chunk) {
|
|
219
|
+
try {
|
|
220
|
+
await runtime.write(chunk);
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
// Output failures cannot be recovered when the stream itself is unavailable.
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
function timeline() {
|
|
227
|
+
const frames = [];
|
|
228
|
+
for (let index = 0; index < PREHEAT_FRAMES; index += 1) {
|
|
229
|
+
frames.push({ phase: 'preheat', progress: index / (PREHEAT_FRAMES - 1) });
|
|
230
|
+
}
|
|
231
|
+
for (let index = 0; index < SWEEP_FRAMES; index += 1) {
|
|
232
|
+
frames.push({ phase: 'sweep', progress: index / (SWEEP_FRAMES - 1) });
|
|
233
|
+
}
|
|
234
|
+
for (let index = 0; index < SETTLE_FRAMES; index += 1) {
|
|
235
|
+
frames.push({ phase: 'settle', progress: index / (SETTLE_FRAMES - 1) });
|
|
236
|
+
}
|
|
237
|
+
return frames;
|
|
238
|
+
}
|
|
239
|
+
export async function printCometBanner(options = {}) {
|
|
240
|
+
if (options.enabled === false)
|
|
241
|
+
return;
|
|
242
|
+
const runtime = { ...defaultRuntime, ...options.runtime };
|
|
243
|
+
if (!canAnimateCometBanner(runtime)) {
|
|
244
|
+
await writeSafely(runtime, `\n${staticFrameForRuntime()}\n\n`);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
let started = false;
|
|
248
|
+
try {
|
|
249
|
+
await runtime.write('\n');
|
|
250
|
+
for (const frame of timeline()) {
|
|
251
|
+
const rendered = animationFrameForRuntime(runtime, renderCometAnimationFrame(frame.phase, frame.progress));
|
|
252
|
+
await runtime.write(replaceFrame(rendered, !started));
|
|
253
|
+
started = true;
|
|
254
|
+
await runtime.sleep(FRAME_DELAY_MS);
|
|
255
|
+
}
|
|
256
|
+
const stable = animationFrameForRuntime(runtime, renderCometBanner({ color: true }));
|
|
257
|
+
await runtime.write(replaceFrame(stable, false));
|
|
258
|
+
await runtime.write(`${RESET}\n`);
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
const cleanup = started ? clearRenderedFrame() : '';
|
|
262
|
+
await writeSafely(runtime, `${RESET}${cleanup}\n${staticFrameForRuntime()}\n\n`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=comet-banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comet-banner.js","sourceRoot":"","sources":["../../../app/cli/comet-banner.ts"],"names":[],"mappings":"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"}
|