@litfamily/litopencode 1.0.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/.gitattributes +8 -0
- package/ATTRIBUTION.md +56 -0
- package/CHANGELOG.md +267 -0
- package/CODE_OF_CONDUCT.md +30 -0
- package/CONTRIBUTING.md +82 -0
- package/LICENSE +21 -0
- package/README-Ko-KR.md +252 -0
- package/README.md +252 -0
- package/SECURITY.md +36 -0
- package/SUPPORT.md +37 -0
- package/bin/litopencode +3 -0
- package/bin/litopencode.cjs +10 -0
- package/dist/activation-managed-prompts.d.ts +2 -0
- package/dist/activation-managed-prompts.js +51 -0
- package/dist/activation-primary-prompts.d.ts +2 -0
- package/dist/activation-primary-prompts.js +176 -0
- package/dist/activation-probe.d.ts +3 -0
- package/dist/activation-probe.js +19 -0
- package/dist/activation-prompt-utils.d.ts +6 -0
- package/dist/activation-prompt-utils.js +36 -0
- package/dist/activation-routing.d.ts +5 -0
- package/dist/activation-routing.js +340 -0
- package/dist/activation-workflow-prompts.d.ts +26 -0
- package/dist/activation-workflow-prompts.js +295 -0
- package/dist/activation.d.ts +24 -0
- package/dist/activation.js +152 -0
- package/dist/agents/defaults.d.ts +15 -0
- package/dist/agents/defaults.js +112 -0
- package/dist/agents/registry.d.ts +65 -0
- package/dist/agents/registry.js +319 -0
- package/dist/agents/specialists.d.ts +49 -0
- package/dist/agents/specialists.js +307 -0
- package/dist/agents/types.d.ts +55 -0
- package/dist/agents/types.js +4 -0
- package/dist/agents.d.ts +4 -0
- package/dist/agents.js +3 -0
- package/dist/benchmark.d.ts +94 -0
- package/dist/benchmark.js +172 -0
- package/dist/bounded-authority-hooks.d.ts +19 -0
- package/dist/bounded-authority-hooks.js +157 -0
- package/dist/bounded-authority.d.ts +184 -0
- package/dist/bounded-authority.js +825 -0
- package/dist/cache-metrics.d.ts +54 -0
- package/dist/cache-metrics.js +81 -0
- package/dist/cli/args.d.ts +5 -0
- package/dist/cli/args.js +415 -0
- package/dist/cli/auto-update.d.ts +117 -0
- package/dist/cli/auto-update.js +604 -0
- package/dist/cli/command-alias-ownership.d.ts +2 -0
- package/dist/cli/command-alias-ownership.js +14 -0
- package/dist/cli/command-aliases.d.ts +12 -0
- package/dist/cli/command-aliases.js +112 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.js +175 -0
- package/dist/cli/host-capabilities.d.ts +12 -0
- package/dist/cli/host-capabilities.js +25 -0
- package/dist/cli/host-limits.d.ts +21 -0
- package/dist/cli/host-limits.js +83 -0
- package/dist/cli/install-config.d.ts +13 -0
- package/dist/cli/install-config.js +201 -0
- package/dist/cli/install-report.d.ts +2 -0
- package/dist/cli/install-report.js +180 -0
- package/dist/cli/install-tui.d.ts +12 -0
- package/dist/cli/install-tui.js +174 -0
- package/dist/cli/install.d.ts +2 -0
- package/dist/cli/install.js +264 -0
- package/dist/cli/json.d.ts +4 -0
- package/dist/cli/json.js +31 -0
- package/dist/cli/loop.d.ts +3 -0
- package/dist/cli/loop.js +135 -0
- package/dist/cli/lsp-capability.d.ts +17 -0
- package/dist/cli/lsp-capability.js +92 -0
- package/dist/cli/managed-skill-assets.d.ts +23 -0
- package/dist/cli/managed-skill-assets.js +117 -0
- package/dist/cli/model-catalog.d.ts +21 -0
- package/dist/cli/model-catalog.js +107 -0
- package/dist/cli/model-policy.d.ts +3 -0
- package/dist/cli/model-policy.js +143 -0
- package/dist/cli/model-routing.d.ts +5 -0
- package/dist/cli/model-routing.js +208 -0
- package/dist/cli/native-canonical-backup.d.ts +9 -0
- package/dist/cli/native-canonical-backup.js +96 -0
- package/dist/cli/native-canonical-cache.d.ts +9 -0
- package/dist/cli/native-canonical-cache.js +37 -0
- package/dist/cli/native-skill-install.d.ts +2 -0
- package/dist/cli/native-skill-install.js +128 -0
- package/dist/cli/native-skill-integrity.d.ts +25 -0
- package/dist/cli/native-skill-integrity.js +178 -0
- package/dist/cli/native-skill-tree.d.ts +12 -0
- package/dist/cli/native-skill-tree.js +104 -0
- package/dist/cli/native-skills.d.ts +22 -0
- package/dist/cli/native-skills.js +105 -0
- package/dist/cli/plugin-mutation.d.ts +4 -0
- package/dist/cli/plugin-mutation.js +89 -0
- package/dist/cli/scientific-visualization-dependencies.d.ts +18 -0
- package/dist/cli/scientific-visualization-dependencies.js +91 -0
- package/dist/cli/skill-loop.d.ts +3 -0
- package/dist/cli/skill-loop.js +649 -0
- package/dist/cli/types.d.ts +188 -0
- package/dist/cli/types.js +1 -0
- package/dist/cli/update-check.d.ts +2 -0
- package/dist/cli/update-check.js +15 -0
- package/dist/cli/update-notifier.d.ts +70 -0
- package/dist/cli/update-notifier.js +717 -0
- package/dist/cli/vendor-path-migration.d.ts +9 -0
- package/dist/cli/vendor-path-migration.js +96 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.js +250 -0
- package/dist/commands.d.ts +331 -0
- package/dist/commands.js +600 -0
- package/dist/config-parser.d.ts +5 -0
- package/dist/config-parser.js +274 -0
- package/dist/config.d.ts +72 -0
- package/dist/config.js +157 -0
- package/dist/deliverable-hedge-guard.d.ts +26 -0
- package/dist/deliverable-hedge-guard.js +302 -0
- package/dist/durable-plan.d.ts +23 -0
- package/dist/durable-plan.js +349 -0
- package/dist/features.d.ts +828 -0
- package/dist/features.js +1109 -0
- package/dist/hooks.d.ts +17 -0
- package/dist/hooks.js +83 -0
- package/dist/ignition.d.ts +14 -0
- package/dist/ignition.js +33 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +30 -0
- package/dist/inert-data.d.ts +2 -0
- package/dist/inert-data.js +13 -0
- package/dist/knowledge.d.ts +98 -0
- package/dist/knowledge.js +961 -0
- package/dist/ledger.d.ts +181 -0
- package/dist/ledger.js +1179 -0
- package/dist/lit-fetch-classify.d.ts +8 -0
- package/dist/lit-fetch-classify.js +107 -0
- package/dist/lit-fetch-content.d.ts +2 -0
- package/dist/lit-fetch-content.js +43 -0
- package/dist/lit-fetch-http.d.ts +10 -0
- package/dist/lit-fetch-http.js +82 -0
- package/dist/lit-fetch-result.d.ts +2 -0
- package/dist/lit-fetch-result.js +65 -0
- package/dist/lit-fetch-ssrf.d.ts +9 -0
- package/dist/lit-fetch-ssrf.js +77 -0
- package/dist/lit-fetch-url.d.ts +3 -0
- package/dist/lit-fetch-url.js +28 -0
- package/dist/lit-fetch.d.ts +69 -0
- package/dist/lit-fetch.js +84 -0
- package/dist/lit-mark.d.ts +17 -0
- package/dist/lit-mark.js +129 -0
- package/dist/logger.d.ts +9 -0
- package/dist/logger.js +21 -0
- package/dist/model-route-policy.d.ts +25 -0
- package/dist/model-route-policy.js +129 -0
- package/dist/reader-facing-output.d.ts +3 -0
- package/dist/reader-facing-output.js +28 -0
- package/dist/rules/discovery.d.ts +36 -0
- package/dist/rules/discovery.js +270 -0
- package/dist/rules/engine.d.ts +43 -0
- package/dist/rules/engine.js +236 -0
- package/dist/rules/frontmatter.d.ts +16 -0
- package/dist/rules/frontmatter.js +179 -0
- package/dist/rules/glob.d.ts +12 -0
- package/dist/rules/glob.js +233 -0
- package/dist/rules/hooks.d.ts +25 -0
- package/dist/rules/hooks.js +75 -0
- package/dist/rules/output-style.d.ts +1 -0
- package/dist/rules/output-style.js +20 -0
- package/dist/scientific-visualization-banner.d.ts +1 -0
- package/dist/scientific-visualization-banner.js +2 -0
- package/dist/search-workflow-ideas.d.ts +67 -0
- package/dist/search-workflow-ideas.js +128 -0
- package/dist/secret-shapes.d.ts +9 -0
- package/dist/secret-shapes.js +63 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +129 -0
- package/dist/session-lineage.d.ts +8 -0
- package/dist/session-lineage.js +12 -0
- package/dist/skill-loop/apply.d.ts +19 -0
- package/dist/skill-loop/apply.js +483 -0
- package/dist/skill-loop/config.d.ts +50 -0
- package/dist/skill-loop/config.js +215 -0
- package/dist/skill-loop/curator.d.ts +18 -0
- package/dist/skill-loop/curator.js +232 -0
- package/dist/skill-loop/ledger.d.ts +39 -0
- package/dist/skill-loop/ledger.js +344 -0
- package/dist/skill-loop/proposals.d.ts +48 -0
- package/dist/skill-loop/proposals.js +290 -0
- package/dist/skill-loop/storage.d.ts +72 -0
- package/dist/skill-loop/storage.js +817 -0
- package/dist/skill-loop/time.d.ts +2 -0
- package/dist/skill-loop/time.js +23 -0
- package/dist/skill-loop/transaction.d.ts +62 -0
- package/dist/skill-loop/transaction.js +836 -0
- package/dist/skill-loop/usage.d.ts +31 -0
- package/dist/skill-loop/usage.js +146 -0
- package/dist/skill-observer.d.ts +22 -0
- package/dist/skill-observer.js +1154 -0
- package/dist/skill-renames.d.ts +5 -0
- package/dist/skill-renames.js +8 -0
- package/dist/skills.d.ts +307 -0
- package/dist/skills.js +450 -0
- package/dist/stable-identity.d.ts +14 -0
- package/dist/stable-identity.js +15 -0
- package/dist/state.d.ts +25 -0
- package/dist/state.js +38 -0
- package/dist/strict-json.d.ts +2 -0
- package/dist/strict-json.js +94 -0
- package/dist/tool-guards.d.ts +34 -0
- package/dist/tool-guards.js +210 -0
- package/dist/tool-kit.d.ts +32 -0
- package/dist/tool-kit.js +75 -0
- package/dist/tools.d.ts +43 -0
- package/dist/tools.js +381 -0
- package/dist/uiux-visual-catalog.d.ts +50 -0
- package/dist/uiux-visual-catalog.js +103 -0
- package/dist/user-facing-markdown.d.ts +5 -0
- package/dist/user-facing-markdown.js +93 -0
- package/dist/workflow-families.d.ts +16 -0
- package/dist/workflow-families.js +95 -0
- package/docs/assets/cover.webp +0 -0
- package/docs/assets/litopencode-continuity-1600.webp +0 -0
- package/docs/assets/litopencode-ignition-1600.webp +0 -0
- package/docs/assets/readme/badge-license.svg +1 -0
- package/docs/assets/readme/badge-version.svg +1 -0
- package/docs/assets/readme/litopencode-clay-icon.png +0 -0
- package/docs/assets/readme/litopencode-wordmark.svg +5 -0
- package/docs/lit-mark.md +46 -0
- package/docs/migration.md +162 -0
- package/docs/privacy.md +82 -0
- package/docs/reference-Ko-KR.md +309 -0
- package/docs/reference.md +444 -0
- package/output-styles/asd-ste100-ko.md +41 -0
- package/output-styles/asd-ste100.md +40 -0
- package/output-styles/eli5-ko.md +13 -0
- package/output-styles/eli5.md +11 -0
- package/package.json +57 -0
- package/qa/fixtures/litfamily-harness-speed-v1.json +38 -0
- package/qa/harness-speed-contract.mjs +209 -0
- package/qa/harness-speed-v2-contract.mjs +213 -0
- package/qa/harness-speed-verdict.mjs +105 -0
- package/skills/agent-roster/SKILL.md +262 -0
- package/skills/autoconference/LICENSE +21 -0
- package/skills/autoconference/PROVENANCE.md +20 -0
- package/skills/autoconference/SKILL.md +125 -0
- package/skills/autoconference/assets/conference_template.md +76 -0
- package/skills/autoconference/assets/report_template.md +53 -0
- package/skills/autoconference/assets/synthesis_template.md +39 -0
- package/skills/autoconference/modes/analyze.md +255 -0
- package/skills/autoconference/modes/core.md +112 -0
- package/skills/autoconference/modes/debate.md +373 -0
- package/skills/autoconference/modes/plan.md +310 -0
- package/skills/autoconference/modes/resume.md +48 -0
- package/skills/autoconference/modes/ship.md +57 -0
- package/skills/autoconference/modes/survey.md +109 -0
- package/skills/autoconference/references/agent-prompts.md +134 -0
- package/skills/autoconference/references/conference-protocol.md +102 -0
- package/skills/autoconference/references/convergence-guide.md +167 -0
- package/skills/autoconference/references/core-principles.md +83 -0
- package/skills/autoconference/references/crash-recovery.md +104 -0
- package/skills/autoconference/references/results-logging.md +198 -0
- package/skills/autoconference/references/upstream-family-contract.md +130 -0
- package/skills/autoconference/references/visualization-guide.md +105 -0
- package/skills/autoconference/scripts/check_conference.sh +371 -0
- package/skills/autoconference/scripts/init_conference.py +625 -0
- package/skills/autoconference/scripts/style_presets.py +104 -0
- package/skills/autoresearch/LICENSE +21 -0
- package/skills/autoresearch/PROVENANCE.md +20 -0
- package/skills/autoresearch/SKILL.md +131 -0
- package/skills/autoresearch/assets/report_template.md +50 -0
- package/skills/autoresearch/assets/research_template.md +38 -0
- package/skills/autoresearch/assets/results_template.tsv +1 -0
- package/skills/autoresearch/modes/core.md +216 -0
- package/skills/autoresearch/modes/debug.md +235 -0
- package/skills/autoresearch/modes/fix.md +173 -0
- package/skills/autoresearch/modes/learn.md +91 -0
- package/skills/autoresearch/modes/plan.md +291 -0
- package/skills/autoresearch/modes/predict.md +266 -0
- package/skills/autoresearch/modes/reason.md +170 -0
- package/skills/autoresearch/modes/scenario.md +164 -0
- package/skills/autoresearch/modes/security.md +282 -0
- package/skills/autoresearch/modes/ship.md +49 -0
- package/skills/autoresearch/references/core-principles.md +80 -0
- package/skills/autoresearch/references/evaluator-contract.md +126 -0
- package/skills/autoresearch/references/investigation-techniques.md +205 -0
- package/skills/autoresearch/references/owasp-checklist.md +161 -0
- package/skills/autoresearch/references/persona-templates.md +232 -0
- package/skills/autoresearch/references/results-logging.md +96 -0
- package/skills/autoresearch/references/scenario-dimensions.md +178 -0
- package/skills/autoresearch/references/stride-model.md +196 -0
- package/skills/autoresearch/references/stuck-detection.md +107 -0
- package/skills/autoresearch/references/type-checklists.md +163 -0
- package/skills/autoresearch/references/upstream-family-contract.md +125 -0
- package/skills/autoresearch/references/visualization-guide.md +95 -0
- package/skills/autoresearch/scripts/check_progress.sh +272 -0
- package/skills/autoresearch/scripts/init_research.py +330 -0
- package/skills/autoresearch/scripts/run_with_deadline.py +164 -0
- package/skills/autoresearch/scripts/style_presets.py +104 -0
- package/skills/browser-drive/SKILL.md +133 -0
- package/skills/browser-drive/references/snapshot-act-loop.md +37 -0
- package/skills/browser-drive/scripts/capability-probe.mjs +262 -0
- package/skills/comment-checker/SKILL.md +171 -0
- package/skills/debugging/SKILL.md +202 -0
- package/skills/debugging/references/README.md +15 -0
- package/skills/debugging/references/escalation.md +43 -0
- package/skills/debugging/references/runtimes/README.md +17 -0
- package/skills/debugging/references/runtimes/bundled-js-binary.md +44 -0
- package/skills/debugging/references/runtimes/go.md +37 -0
- package/skills/debugging/references/runtimes/native-binary.md +44 -0
- package/skills/debugging/references/runtimes/node.md +43 -0
- package/skills/debugging/references/runtimes/python.md +41 -0
- package/skills/debugging/references/runtimes/rust.md +37 -0
- package/skills/debugging/references/tools.md +72 -0
- package/skills/deep-interview/SKILL.md +201 -0
- package/skills/doctor-installer/SKILL.md +252 -0
- package/skills/durable-litgoal/SKILL.md +248 -0
- package/skills/frontend-ui-ux/SKILL.md +70 -0
- package/skills/frontend-ui-ux/data/LICENSE +21 -0
- package/skills/frontend-ui-ux/data/PROVENANCE.json +1088 -0
- package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +14 -0
- package/skills/frontend-ui-ux/data/design-intelligence.json +1 -0
- package/skills/frontend-ui-ux/references/_canonical-corpus/ATTRIBUTION.md +217 -0
- package/skills/frontend-ui-ux/references/_canonical-corpus/LICENSE +21 -0
- package/skills/frontend-ui-ux/references/_canonical-corpus/LICENSE-Apache-2.0.txt +201 -0
- package/skills/frontend-ui-ux/references/_canonical-corpus/manifest.json +867 -0
- package/skills/frontend-ui-ux/references/adaptive-layout.md +85 -0
- package/skills/frontend-ui-ux/references/brand-and-imagery.md +79 -0
- package/skills/frontend-ui-ux/references/complete-contract.md +282 -0
- package/skills/frontend-ui-ux/references/composition.md +87 -0
- package/skills/frontend-ui-ux/references/creative-directions.md +83 -0
- package/skills/frontend-ui-ux/references/design/README.md +248 -0
- package/skills/frontend-ui-ux/references/design/_INDEX.md +191 -0
- package/skills/frontend-ui-ux/references/design/airbnb.md +393 -0
- package/skills/frontend-ui-ux/references/design/airtable.md +92 -0
- package/skills/frontend-ui-ux/references/design/apple.md +250 -0
- package/skills/frontend-ui-ux/references/design/aside.md +209 -0
- package/skills/frontend-ui-ux/references/design/binance.md +348 -0
- package/skills/frontend-ui-ux/references/design/bmw.md +183 -0
- package/skills/frontend-ui-ux/references/design/brutalist-skill.md +92 -0
- package/skills/frontend-ui-ux/references/design/bugatti.md +271 -0
- package/skills/frontend-ui-ux/references/design/cal.md +262 -0
- package/skills/frontend-ui-ux/references/design/claude.md +315 -0
- package/skills/frontend-ui-ux/references/design/clay.md +307 -0
- package/skills/frontend-ui-ux/references/design/clickhouse.md +284 -0
- package/skills/frontend-ui-ux/references/design/clone-from-url.md +65 -0
- package/skills/frontend-ui-ux/references/design/cohere.md +269 -0
- package/skills/frontend-ui-ux/references/design/coinbase.md +132 -0
- package/skills/frontend-ui-ux/references/design/composio.md +310 -0
- package/skills/frontend-ui-ux/references/design/cursor.md +312 -0
- package/skills/frontend-ui-ux/references/design/design-system-architecture.md +244 -0
- package/skills/frontend-ui-ux/references/design/elevenlabs.md +268 -0
- package/skills/frontend-ui-ux/references/design/expo.md +284 -0
- package/skills/frontend-ui-ux/references/design/ferrari.md +317 -0
- package/skills/frontend-ui-ux/references/design/figma.md +223 -0
- package/skills/frontend-ui-ux/references/design/framer.md +249 -0
- package/skills/frontend-ui-ux/references/design/gpt-tasteskill.md +74 -0
- package/skills/frontend-ui-ux/references/design/hashicorp.md +281 -0
- package/skills/frontend-ui-ux/references/design/ibm.md +335 -0
- package/skills/frontend-ui-ux/references/design/image-to-code-skill.md +1228 -0
- package/skills/frontend-ui-ux/references/design/imagegen-brandkit.md +798 -0
- package/skills/frontend-ui-ux/references/design/imagegen-frontend-mobile.md +1465 -0
- package/skills/frontend-ui-ux/references/design/imagegen-frontend-web.md +987 -0
- package/skills/frontend-ui-ux/references/design/intercom.md +149 -0
- package/skills/frontend-ui-ux/references/design/kraken.md +128 -0
- package/skills/frontend-ui-ux/references/design/lamborghini.md +291 -0
- package/skills/frontend-ui-ux/references/design/layout-skill.md +107 -0
- package/skills/frontend-ui-ux/references/design/lazyweb.md +77 -0
- package/skills/frontend-ui-ux/references/design/linear.app.md +370 -0
- package/skills/frontend-ui-ux/references/design/lovable.md +301 -0
- package/skills/frontend-ui-ux/references/design/mastercard.md +368 -0
- package/skills/frontend-ui-ux/references/design/meta.md +369 -0
- package/skills/frontend-ui-ux/references/design/minimalist-skill.md +85 -0
- package/skills/frontend-ui-ux/references/design/minimax.md +260 -0
- package/skills/frontend-ui-ux/references/design/mintlify.md +329 -0
- package/skills/frontend-ui-ux/references/design/miro.md +111 -0
- package/skills/frontend-ui-ux/references/design/mistral.ai.md +264 -0
- package/skills/frontend-ui-ux/references/design/mongodb.md +269 -0
- package/skills/frontend-ui-ux/references/design/nike.md +366 -0
- package/skills/frontend-ui-ux/references/design/notion.md +312 -0
- package/skills/frontend-ui-ux/references/design/nvidia.md +296 -0
- package/skills/frontend-ui-ux/references/design/ollama.md +270 -0
- package/skills/frontend-ui-ux/references/design/opencode.ai.md +284 -0
- package/skills/frontend-ui-ux/references/design/output-skill.md +49 -0
- package/skills/frontend-ui-ux/references/design/pinterest.md +233 -0
- package/skills/frontend-ui-ux/references/design/playstation.md +367 -0
- package/skills/frontend-ui-ux/references/design/posthog.md +259 -0
- package/skills/frontend-ui-ux/references/design/raycast.md +271 -0
- package/skills/frontend-ui-ux/references/design/react-dev-tooling-skill.md +230 -0
- package/skills/frontend-ui-ux/references/design/redesign-skill.md +178 -0
- package/skills/frontend-ui-ux/references/design/renault.md +314 -0
- package/skills/frontend-ui-ux/references/design/replicate.md +264 -0
- package/skills/frontend-ui-ux/references/design/resend.md +306 -0
- package/skills/frontend-ui-ux/references/design/revolut.md +188 -0
- package/skills/frontend-ui-ux/references/design/runwayml.md +247 -0
- package/skills/frontend-ui-ux/references/design/sanity.md +360 -0
- package/skills/frontend-ui-ux/references/design/sentry.md +265 -0
- package/skills/frontend-ui-ux/references/design/shopify.md +353 -0
- package/skills/frontend-ui-ux/references/design/soft-skill.md +98 -0
- package/skills/frontend-ui-ux/references/design/spacex.md +197 -0
- package/skills/frontend-ui-ux/references/design/spotify.md +249 -0
- package/skills/frontend-ui-ux/references/design/starbucks.md +583 -0
- package/skills/frontend-ui-ux/references/design/stitch-design-example.md +121 -0
- package/skills/frontend-ui-ux/references/design/stitch-skill.md +184 -0
- package/skills/frontend-ui-ux/references/design/stripe.md +325 -0
- package/skills/frontend-ui-ux/references/design/supabase.md +258 -0
- package/skills/frontend-ui-ux/references/design/superhuman.md +255 -0
- package/skills/frontend-ui-ux/references/design/taste-skill.md +1206 -0
- package/skills/frontend-ui-ux/references/design/tesla.md +289 -0
- package/skills/frontend-ui-ux/references/design/theverge.md +342 -0
- package/skills/frontend-ui-ux/references/design/together.ai.md +266 -0
- package/skills/frontend-ui-ux/references/design/uber.md +298 -0
- package/skills/frontend-ui-ux/references/design/vercel.md +313 -0
- package/skills/frontend-ui-ux/references/design/vodafone.md +426 -0
- package/skills/frontend-ui-ux/references/design/voltagent.md +326 -0
- package/skills/frontend-ui-ux/references/design/warp.md +256 -0
- package/skills/frontend-ui-ux/references/design/webflow.md +95 -0
- package/skills/frontend-ui-ux/references/design/wired.md +281 -0
- package/skills/frontend-ui-ux/references/design/wise.md +176 -0
- package/skills/frontend-ui-ux/references/design/x.ai.md +260 -0
- package/skills/frontend-ui-ux/references/design/zapier.md +331 -0
- package/skills/frontend-ui-ux/references/designpowers/EVIDENCE.md +97 -0
- package/skills/frontend-ui-ux/references/designpowers/README.md +48 -0
- package/skills/frontend-ui-ux/references/designpowers/UPSTREAM.md +80 -0
- package/skills/frontend-ui-ux/references/designpowers/lane-a-direction.md +64 -0
- package/skills/frontend-ui-ux/references/designpowers/lane-b-execution.md +65 -0
- package/skills/frontend-ui-ux/references/designpowers/lane-c-review.md +65 -0
- package/skills/frontend-ui-ux/references/designpowers/lane-d-memory.md +83 -0
- package/skills/frontend-ui-ux/references/designpowers/orchestration.md +80 -0
- package/skills/frontend-ui-ux/references/designpowers/routing.md +79 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/LICENSE +21 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/content-writer.md +132 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-builder.md +109 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-critic.md +89 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-lead.md +113 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-scout.md +78 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-strategist.md +121 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/agents/motion-designer.md +120 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/accessible-content/reference.md +101 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/adaptive-interfaces/reference.md +109 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/cognitive-accessibility/reference.md +107 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-debate/reference.md +199 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-debt-tracker/reference.md +174 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-handoff/reference.md +125 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-md/reference.md +106 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-retrospective/reference.md +266 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-review/reference.md +123 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-system-alignment/reference.md +120 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/designpowers-critique/reference.md +164 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/heuristic-evaluation/reference.md +85 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/inclusive-personas/reference.md +98 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/inspiration-scouting/reference.md +165 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/interaction-design/reference.md +122 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/motion-choreography/reference.md +81 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/research-planning/reference.md +96 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/responsive-patterns/reference.md +77 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/synthetic-user-testing/reference.md +192 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/taste-feedback/reference.md +165 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/taste-report/reference.md +78 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/token-architecture/reference.md +75 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/ui-composition/reference.md +117 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/usability-testing/reference.md +78 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/verification-before-shipping/reference.md +125 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/voice-and-tone/reference.md +79 -0
- package/skills/frontend-ui-ux/references/designpowers/vendor/skills/writing-design-plans/reference.md +119 -0
- package/skills/frontend-ui-ux/references/evidence-review.md +103 -0
- package/skills/frontend-ui-ux/references/implementation-platforms.md +94 -0
- package/skills/frontend-ui-ux/references/inclusive-interface.md +85 -0
- package/skills/frontend-ui-ux/references/interaction-motion.md +93 -0
- package/skills/frontend-ui-ux/references/operating-lanes.md +80 -0
- package/skills/frontend-ui-ux/references/perfection/README.md +160 -0
- package/skills/frontend-ui-ux/references/perfection/react-perf-tooling.md +127 -0
- package/skills/frontend-ui-ux/references/performance-delivery.md +77 -0
- package/skills/frontend-ui-ux/references/product-direction.md +84 -0
- package/skills/frontend-ui-ux/references/redesign-playbook.md +88 -0
- package/skills/frontend-ui-ux/references/system-foundations.md +86 -0
- package/skills/frontend-ui-ux/references/taste-direction.md +55 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/README.md +659 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/charts.csv +26 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/colors.csv +162 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/icons.csv +106 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/landing.csv +35 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/products.csv +162 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/react-performance.csv +45 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/astro.csv +54 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/flutter.csv +53 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nextjs.csv +53 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/react-native.csv +52 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/react.csv +54 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/shadcn.csv +61 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/svelte.csv +54 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/swiftui.csv +51 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/vue.csv +50 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/styles.csv +85 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/typography.csv +74 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/ui-reasoning.csv +162 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/ux-guidelines.csv +100 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/data/web-interface.csv +31 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/scripts/core.py +262 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/scripts/design_system.py +1148 -0
- package/skills/frontend-ui-ux/references/ui-ux-db/scripts/search.py +114 -0
- package/skills/frontend-ui-ux/references/visual-language.md +84 -0
- package/skills/frontend-ui-ux/references/visual-reconstruction.md +87 -0
- package/skills/frontend-ui-ux/schemas/design-contract-v1alpha1.json +570 -0
- package/skills/frontend-ui-ux/schemas/design-contract-v1beta1.json +32 -0
- package/skills/frontend-ui-ux/schemas/design-contract-v1beta2.json +34 -0
- package/skills/frontend-ui-ux/scripts/bounded-json.mjs +45 -0
- package/skills/frontend-ui-ux/scripts/canonical-json.mjs +26 -0
- package/skills/frontend-ui-ux/scripts/contract-error.mjs +15 -0
- package/skills/frontend-ui-ux/scripts/csv.mjs +64 -0
- package/skills/frontend-ui-ux/scripts/dataset.mjs +65 -0
- package/skills/frontend-ui-ux/scripts/design-contract.mjs +609 -0
- package/skills/frontend-ui-ux/scripts/import-design-intelligence.mjs +193 -0
- package/skills/frontend-ui-ux/scripts/retrieval.mjs +92 -0
- package/skills/frontend-ui-ux/scripts/stable-file-read.mjs +237 -0
- package/skills/frontend-ui-ux/scripts/stdin-json.mjs +16 -0
- package/skills/frontend-ui-ux/scripts/strict-json.mjs +102 -0
- package/skills/frontend-ui-ux/scripts/uiux.mjs +86 -0
- package/skills/frontend-ui-ux/scripts/verify-canonical-corpus.mjs +266 -0
- package/skills/lit-burnoff/SKILL.md +227 -0
- package/skills/lit-burnoff-file/SKILL.md +175 -0
- package/skills/lit-code/SKILL.md +266 -0
- package/skills/lit-code/references/README.md +18 -0
- package/skills/lit-code/references/go/README.md +12 -0
- package/skills/lit-code/references/go/concurrency.md +42 -0
- package/skills/lit-code/references/go/error-handling.md +47 -0
- package/skills/lit-code/references/go/testing.md +55 -0
- package/skills/lit-code/references/go/tooling.md +35 -0
- package/skills/lit-code/references/go/type-patterns.md +50 -0
- package/skills/lit-code/references/python/README.md +12 -0
- package/skills/lit-code/references/python/async.md +50 -0
- package/skills/lit-code/references/python/error-handling.md +44 -0
- package/skills/lit-code/references/python/testing.md +50 -0
- package/skills/lit-code/references/python/tooling.md +38 -0
- package/skills/lit-code/references/python/type-patterns.md +46 -0
- package/skills/lit-code/references/rust/README.md +12 -0
- package/skills/lit-code/references/rust/concurrency.md +45 -0
- package/skills/lit-code/references/rust/error-handling.md +43 -0
- package/skills/lit-code/references/rust/tooling.md +36 -0
- package/skills/lit-code/references/rust/type-patterns.md +46 -0
- package/skills/lit-code/references/rust/unsafe.md +47 -0
- package/skills/lit-code/references/typescript/README.md +11 -0
- package/skills/lit-code/references/typescript/error-handling.md +56 -0
- package/skills/lit-code/references/typescript/testing.md +42 -0
- package/skills/lit-code/references/typescript/tsconfig-strict.md +40 -0
- package/skills/lit-code/references/typescript/type-patterns.md +60 -0
- package/skills/lit-commit/SKILL.md +222 -0
- package/skills/lit-comprehend/SKILL.md +278 -0
- package/skills/lit-comprehend/assets/explainer-scaffold.html +104 -0
- package/skills/lit-comprehend/references/artifact-template.md +114 -0
- package/skills/lit-comprehend/references/micro-worlds.md +115 -0
- package/skills/lit-comprehend/scripts/verify-explainer.ts +339 -0
- package/skills/lit-crucible/SKILL.md +212 -0
- package/skills/lit-fetch/SKILL.md +242 -0
- package/skills/lit-handoff/SKILL.md +199 -0
- package/skills/lit-init/SKILL.md +214 -0
- package/skills/lit-korean/SKILL.md +231 -0
- package/skills/lit-plan/SKILL.md +351 -0
- package/skills/lit-plan/scripts/scaffold-plan.mjs +275 -0
- package/skills/lit-recap/SKILL.md +233 -0
- package/skills/lit-scientific-visualization/SKILL.md +175 -0
- package/skills/litresearch/SKILL.md +436 -0
- package/skills/litwork/SKILL.md +227 -0
- package/skills/lsp/SKILL.md +186 -0
- package/skills/lsp-setup/SKILL.md +187 -0
- package/skills/lsp-setup/references/README.md +40 -0
- package/skills/lsp-setup/references/bash.md +31 -0
- package/skills/lsp-setup/references/c-cpp.md +43 -0
- package/skills/lsp-setup/references/csharp.md +29 -0
- package/skills/lsp-setup/references/dart.md +25 -0
- package/skills/lsp-setup/references/elixir.md +30 -0
- package/skills/lsp-setup/references/go.md +33 -0
- package/skills/lsp-setup/references/haskell.md +27 -0
- package/skills/lsp-setup/references/java.md +28 -0
- package/skills/lsp-setup/references/julia.md +28 -0
- package/skills/lsp-setup/references/kotlin.md +25 -0
- package/skills/lsp-setup/references/lua.md +26 -0
- package/skills/lsp-setup/references/php.md +30 -0
- package/skills/lsp-setup/references/python.md +33 -0
- package/skills/lsp-setup/references/ruby.md +34 -0
- package/skills/lsp-setup/references/rust.md +34 -0
- package/skills/lsp-setup/references/swift.md +26 -0
- package/skills/lsp-setup/references/terraform.md +26 -0
- package/skills/lsp-setup/references/typescript.md +35 -0
- package/skills/lsp-setup/references/yaml.md +27 -0
- package/skills/lsp-setup/references/zig.md +28 -0
- package/skills/managed-skill-manifest.json +1386 -0
- package/skills/native-goal-verdict/SKILL.md +216 -0
- package/skills/refactor/SKILL.md +221 -0
- package/skills/reference-benchmark-claims/SKILL.md +204 -0
- package/skills/release-guardrails/SKILL.md +245 -0
- package/skills/review-work/SKILL.md +301 -0
- package/skills/rules/SKILL.md +196 -0
- package/skills/search-workflow-ideas/SKILL.md +223 -0
- package/skills/skill-observer/SKILL.md +148 -0
- package/skills/skill-observer/references/review-contract.md +95 -0
- package/skills/skill-rename-aliases.json +10 -0
- package/skills/start-work/SKILL.md +334 -0
- package/skills/structural-search/SKILL.md +234 -0
- package/skills/tool-guards/SKILL.md +223 -0
- package/skills/visual-qa/SKILL.md +61 -0
- package/skills/visual-qa/references/capture-playbook.md +105 -0
- package/skills/visual-qa/references/complete-contract.md +411 -0
- package/skills/visual-qa/schemas/evidence-manifest-v1alpha1.json +201 -0
- package/skills/visual-qa/schemas/evidence-manifest-v1beta1.json +141 -0
- package/skills/visual-qa/schemas/review-receipt-v1alpha1.json +113 -0
- package/skills/visual-qa/scripts/artifact.mjs +123 -0
- package/skills/visual-qa/scripts/bounded-json.mjs +47 -0
- package/skills/visual-qa/scripts/canonical-json.mjs +28 -0
- package/skills/visual-qa/scripts/capabilities.mjs +66 -0
- package/skills/visual-qa/scripts/contract-text.mjs +15 -0
- package/skills/visual-qa/scripts/design-contract.mjs +611 -0
- package/skills/visual-qa/scripts/evidence-evaluate.mjs +521 -0
- package/skills/visual-qa/scripts/evidence.mjs +271 -0
- package/skills/visual-qa/scripts/png-decode.mjs +146 -0
- package/skills/visual-qa/scripts/png.mjs +154 -0
- package/skills/visual-qa/scripts/review.mjs +188 -0
- package/skills/visual-qa/scripts/stdin-json.mjs +16 -0
- package/skills/visual-qa/scripts/strict-json.mjs +102 -0
- package/skills/visual-qa/scripts/tui.mjs +149 -0
- package/skills/visual-qa/scripts/visual-qa.mjs +90 -0
- package/skills/wikify/LICENSE +21 -0
- package/skills/wikify/PROVENANCE.md +18 -0
- package/skills/wikify/SKILL.md +176 -0
- package/skills/wikify/assets/home-template.md +44 -0
- package/skills/wikify/assets/maintenance-report-template.md +46 -0
- package/skills/wikify/assets/paper-source-note-template.md +137 -0
- package/skills/wikify/assets/source-note-template.md +45 -0
- package/skills/wikify/assets/wiki-rules-template.md +117 -0
- package/skills/wikify/modes/ingest.md +57 -0
- package/skills/wikify/modes/init.md +44 -0
- package/skills/wikify/modes/lint.md +60 -0
- package/skills/wikify/modes/query.md +38 -0
- package/skills/wikify/modes/save.md +45 -0
- package/skills/wikify/references-upstream-contract.md +758 -0
- package/skills/workflow-loop/SKILL.md +387 -0
- package/tools/check-pack-payload.mjs +410 -0
- package/tools/check-payload-substance.mjs +738 -0
- package/tools/check-version-lockstep.mjs +238 -0
- package/tools/gen-canonical-frontend-manifest.mjs +66 -0
- package/tools/gen-managed-skill-manifest.mjs +135 -0
- package/tools/harness-speed-local.mjs +261 -0
- package/tools/payload-reference-exemptions.json +49 -0
- package/tools/payload-substance-allowlist.json +46 -0
- package/tools/payload-substance-parity.json +571 -0
- package/tools/qa-real-surface-fixtures.mjs +428 -0
- package/tools/qa-real-surface-harness.mjs +173 -0
- package/tools/run-behavior-replacement-probes.mjs +296 -0
- package/tools/run-build.mjs +101 -0
- package/tools/run-harness-speed-local.mjs +52 -0
- package/tools/run-harness-speed-v2.mjs +36 -0
- package/tools/run-installed-resource-tamper-probe.mjs +62 -0
- package/tools/run-negative-gate-matrix.mjs +516 -0
- package/tools/run-rules-glob-differential.mjs +232 -0
- package/tools/run-typecheck.mjs +25 -0
- package/tools/run-uiux-visual-qa-scenarios.mjs +234 -0
- package/tools/run-wikify-surface-probe.mjs +170 -0
- package/tools/scan-legacy-tokens.mjs +431 -0
- package/tools/version-manifests.json +60 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +13 -0
- package/vendor/NOTICE.md +21 -0
- package/vendor/handoff/SKILL.md +199 -0
- package/vendor/handoff/evals/evals.json +154 -0
- package/vendor/handoff/examples/HANDOFF-example-generic-auth-refactor.md +97 -0
- package/vendor/handoff/templates/HANDOFF.md +121 -0
- package/vendor/licenses/022_handoff-MIT.txt +21 -0
- package/vendor/licenses/045_scientific-visualization-MIT.txt +21 -0
- package/vendor/provenance/022_handoff.md +19 -0
- package/vendor/provenance/045_scientific-visualization.md +36 -0
- package/vendor/scientific-visualization/SKILL.md +283 -0
- package/vendor/scientific-visualization/assets/color_palettes.py +197 -0
- package/vendor/scientific-visualization/assets/nature.mplstyle +75 -0
- package/vendor/scientific-visualization/assets/presentation.mplstyle +74 -0
- package/vendor/scientific-visualization/assets/publication.mplstyle +78 -0
- package/vendor/scientific-visualization/evals/evals.json +158 -0
- package/vendor/scientific-visualization/references/color_palettes.md +380 -0
- package/vendor/scientific-visualization/references/journal_requirements.md +359 -0
- package/vendor/scientific-visualization/references/matplotlib_examples.md +608 -0
- package/vendor/scientific-visualization/references/mdanalysis_martini_visualization.md +85 -0
- package/vendor/scientific-visualization/references/publication_guidelines.md +217 -0
- package/vendor/scientific-visualization/references/seaborn_for_publications.md +293 -0
- package/vendor/scientific-visualization/scripts/figure_export.py +238 -0
- package/vendor/scientific-visualization/scripts/style_presets.py +467 -0
- package/vendor/scientific-visualization/tests/test_figure_export.py +51 -0
- package/vendor/scientific-visualization/tests/test_style_presets.py +114 -0
|
@@ -0,0 +1,625 @@
|
|
|
1
|
+
"""
|
|
2
|
+
init_conference.py — Scaffold a new autoconference-skill project directory.
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
python init_conference.py --goal "..." --metric "..." --direction {maximize|minimize} \
|
|
6
|
+
[--target "..."] [--researchers 3] [--strategy assigned] \
|
|
7
|
+
[--devils-advocate {yes|no}] [--output ./conference/]
|
|
8
|
+
|
|
9
|
+
python init_conference.py --goal "..." --mode qualitative --criteria "..." \
|
|
10
|
+
[--researchers 3] [--output ./conference/]
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import argparse
|
|
14
|
+
import os
|
|
15
|
+
import shutil
|
|
16
|
+
import stat
|
|
17
|
+
import string
|
|
18
|
+
import sys
|
|
19
|
+
import tempfile
|
|
20
|
+
import textwrap
|
|
21
|
+
from datetime import datetime
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
from typing import Callable, List
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
CONFERENCE_TEMPLATE_METRIC = """\
|
|
27
|
+
# Conference: {title}
|
|
28
|
+
|
|
29
|
+
> **Scaffold status: INCOMPLETE.** This file contains labeled placeholders. It is not an approved
|
|
30
|
+
> conference plan. Complete and validate every placeholder through explicit /start-work before any
|
|
31
|
+
> mutation, evaluator execution, or task dispatch.
|
|
32
|
+
|
|
33
|
+
## Goal
|
|
34
|
+
{goal}
|
|
35
|
+
|
|
36
|
+
## Mode
|
|
37
|
+
metric
|
|
38
|
+
|
|
39
|
+
## Success Metric
|
|
40
|
+
- **Metric:** {metric}
|
|
41
|
+
- **Target:** {target}
|
|
42
|
+
- **Direction:** {direction}
|
|
43
|
+
|
|
44
|
+
## Researchers
|
|
45
|
+
- **Count:** {researchers}
|
|
46
|
+
- **Iterations per round:** {iterations_per_round}
|
|
47
|
+
- **Max rounds:** {max_rounds}
|
|
48
|
+
|
|
49
|
+
## Pre-Flight Gate
|
|
50
|
+
- **Researcher count:** {researchers}
|
|
51
|
+
- **Iterations per round:** {iterations_per_round}
|
|
52
|
+
- **Max rounds:** {max_rounds}
|
|
53
|
+
- **Max total iterations:** {max_total_iterations}
|
|
54
|
+
- **Success definition:** {gate_success_definition}
|
|
55
|
+
- **Critic / Devil's Advocate:** {critic_setting}
|
|
56
|
+
- **Final confirmation:** pending — Conference Chair must summarize these conditions and get explicit user confirmation before execution.
|
|
57
|
+
- **Missing or vague values:** ask the user for exact values first, then recalculate this gate and request final confirmation. Do not start Phase 1 until confirmation is explicit.
|
|
58
|
+
|
|
59
|
+
## Search Space
|
|
60
|
+
- **Allowed changes:** _Define what researchers can modify._
|
|
61
|
+
- **Forbidden changes:** _Define what must NOT change (e.g., test data, eval scripts)._
|
|
62
|
+
|
|
63
|
+
## Search Space Partitioning
|
|
64
|
+
- **Strategy:** {strategy}
|
|
65
|
+
|
|
66
|
+
{researcher_sections}
|
|
67
|
+
|
|
68
|
+
## Guard
|
|
69
|
+
{guard}
|
|
70
|
+
|
|
71
|
+
## Noise Handling
|
|
72
|
+
- **Noise runs:** {noise_runs}
|
|
73
|
+
- **Min consensus delta:** {min_delta}
|
|
74
|
+
|
|
75
|
+
## Constraints
|
|
76
|
+
- **Max total iterations:** {max_total_iterations}
|
|
77
|
+
- **Time budget:** 2h
|
|
78
|
+
- **Researcher timeout:** 30m
|
|
79
|
+
|
|
80
|
+
## Current Approach
|
|
81
|
+
_Describe the baseline. What exists now?_
|
|
82
|
+
|
|
83
|
+
## Shared Knowledge
|
|
84
|
+
<!-- Auto-populated after each round with validated findings -->
|
|
85
|
+
|
|
86
|
+
## Context & References
|
|
87
|
+
_Add relevant papers, docs, or URLs here._
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Conference Log
|
|
92
|
+
<!-- Auto-maintained by Conference Chair. Do not edit manually. -->
|
|
93
|
+
| Round | Researcher | Best Metric | Key Finding | Status |
|
|
94
|
+
|-------|-----------|-------------|-------------|--------|
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
CONFERENCE_TEMPLATE_QUALITATIVE = """\
|
|
98
|
+
# Conference: {title}
|
|
99
|
+
|
|
100
|
+
> **Scaffold status: INCOMPLETE.** This file contains labeled placeholders. It is not an approved
|
|
101
|
+
> conference plan. Complete and validate every placeholder through explicit /start-work before any
|
|
102
|
+
> mutation, evaluator execution, or task dispatch.
|
|
103
|
+
|
|
104
|
+
## Goal
|
|
105
|
+
{goal}
|
|
106
|
+
|
|
107
|
+
## Mode
|
|
108
|
+
qualitative
|
|
109
|
+
|
|
110
|
+
## Success Criteria
|
|
111
|
+
{criteria}
|
|
112
|
+
|
|
113
|
+
## Researchers
|
|
114
|
+
- **Count:** {researchers}
|
|
115
|
+
- **Iterations per round:** {iterations_per_round}
|
|
116
|
+
- **Max rounds:** {max_rounds}
|
|
117
|
+
|
|
118
|
+
## Pre-Flight Gate
|
|
119
|
+
- **Researcher count:** {researchers}
|
|
120
|
+
- **Iterations per round:** {iterations_per_round}
|
|
121
|
+
- **Max rounds:** {max_rounds}
|
|
122
|
+
- **Max total iterations:** {max_total_iterations}
|
|
123
|
+
- **Success definition:** {gate_success_definition}
|
|
124
|
+
- **Critic / Devil's Advocate:** {critic_setting}
|
|
125
|
+
- **Final confirmation:** pending — Conference Chair must summarize these conditions and get explicit user confirmation before execution.
|
|
126
|
+
- **Missing or vague values:** ask the user for exact values first, then recalculate this gate and request final confirmation. Do not start Phase 1 until confirmation is explicit.
|
|
127
|
+
|
|
128
|
+
## Search Space
|
|
129
|
+
- **Allowed changes:** _Define what researchers can modify._
|
|
130
|
+
- **Forbidden changes:** _Define what must NOT change._
|
|
131
|
+
|
|
132
|
+
## Search Space Partitioning
|
|
133
|
+
- **Strategy:** {strategy}
|
|
134
|
+
|
|
135
|
+
{researcher_sections}
|
|
136
|
+
|
|
137
|
+
## Guard
|
|
138
|
+
{guard}
|
|
139
|
+
|
|
140
|
+
## Noise Handling
|
|
141
|
+
- **Noise runs:** {noise_runs}
|
|
142
|
+
- **Min consensus delta:** {min_delta}
|
|
143
|
+
|
|
144
|
+
## Constraints
|
|
145
|
+
- **Max total iterations:** {max_total_iterations}
|
|
146
|
+
- **Time budget:** 2h
|
|
147
|
+
- **Researcher timeout:** 30m
|
|
148
|
+
|
|
149
|
+
## Current Approach
|
|
150
|
+
_Describe the baseline. What exists now?_
|
|
151
|
+
|
|
152
|
+
## Shared Knowledge
|
|
153
|
+
<!-- Auto-populated after each round with validated findings -->
|
|
154
|
+
|
|
155
|
+
## Context & References
|
|
156
|
+
_Add relevant papers, docs, or URLs here._
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Conference Log
|
|
161
|
+
<!-- Auto-maintained by Conference Chair. Do not edit manually. -->
|
|
162
|
+
| Round | Researcher | Best Metric | Key Finding | Status |
|
|
163
|
+
|-------|-----------|-------------|-------------|--------|
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
LOG_TEMPLATE = """\
|
|
167
|
+
# Researcher {rid} Log
|
|
168
|
+
|
|
169
|
+
> Auto-generated by init_conference.py on {date}
|
|
170
|
+
> Conference goal: {goal}
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
RESEARCHER_TSV_HEADER = "iteration\tmetric_value\tdelta\tdelta_pct\tstatus\tdescription\tevaluator_source\ttimestamp\n"
|
|
177
|
+
RESEARCHER_TSV_BASELINE = "0\tTBD\t-\t-\tbaseline\tInitial state\tmanual\t{date}\n"
|
|
178
|
+
|
|
179
|
+
CONFERENCE_TSV_HEADER = (
|
|
180
|
+
"round\tresearcher\titeration\tmetric_value\tdelta\tdelta_pct\t"
|
|
181
|
+
"status\tdescription\tevaluator_source\tpeer_review_verdict\ttimestamp\n"
|
|
182
|
+
)
|
|
183
|
+
SYSTEM_PATH_ALIASES = {
|
|
184
|
+
"/etc": "/private/etc",
|
|
185
|
+
"/tmp": "/private/tmp",
|
|
186
|
+
"/var": "/private/var",
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def _identity(path: Path):
|
|
191
|
+
try:
|
|
192
|
+
value = path.lstat()
|
|
193
|
+
except FileNotFoundError:
|
|
194
|
+
return None
|
|
195
|
+
return (
|
|
196
|
+
value.st_dev,
|
|
197
|
+
value.st_ino,
|
|
198
|
+
stat.S_IFMT(value.st_mode),
|
|
199
|
+
value.st_ctime_ns,
|
|
200
|
+
getattr(value, "st_birthtime_ns", 0),
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def _allowed_system_alias(path: Path) -> bool:
|
|
205
|
+
expected = SYSTEM_PATH_ALIASES.get(str(path))
|
|
206
|
+
return expected is not None and os.path.realpath(str(path)) == expected
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def validate_output_tree(output: Path) -> Path:
|
|
210
|
+
"""Reject symlink ancestors, symlink roots, and non-regular tree entries."""
|
|
211
|
+
absolute = Path(os.path.abspath(str(output)))
|
|
212
|
+
for ancestor in reversed(absolute.parents):
|
|
213
|
+
try:
|
|
214
|
+
mode = ancestor.lstat().st_mode
|
|
215
|
+
except FileNotFoundError:
|
|
216
|
+
continue
|
|
217
|
+
if stat.S_ISLNK(mode) and not _allowed_system_alias(ancestor):
|
|
218
|
+
raise RuntimeError(f"refusing symlink output ancestor: {ancestor}")
|
|
219
|
+
if not stat.S_ISLNK(mode) and not stat.S_ISDIR(mode):
|
|
220
|
+
raise RuntimeError(f"refusing non-directory output ancestor: {ancestor}")
|
|
221
|
+
|
|
222
|
+
root_identity = _identity(absolute)
|
|
223
|
+
if root_identity is None:
|
|
224
|
+
return absolute
|
|
225
|
+
root_mode = absolute.lstat().st_mode
|
|
226
|
+
if stat.S_ISLNK(root_mode):
|
|
227
|
+
raise RuntimeError(f"refusing symlink output root: {absolute}")
|
|
228
|
+
if not stat.S_ISDIR(root_mode):
|
|
229
|
+
raise RuntimeError(f"refusing non-directory output root: {absolute}")
|
|
230
|
+
|
|
231
|
+
for current, directories, files in os.walk(str(absolute), followlinks=False):
|
|
232
|
+
for name in directories + files:
|
|
233
|
+
candidate = Path(current) / name
|
|
234
|
+
mode = candidate.lstat().st_mode
|
|
235
|
+
if stat.S_ISLNK(mode):
|
|
236
|
+
raise RuntimeError(f"refusing symlink output entry: {candidate}")
|
|
237
|
+
if not (stat.S_ISDIR(mode) or stat.S_ISREG(mode)):
|
|
238
|
+
raise RuntimeError(f"refusing special output entry: {candidate}")
|
|
239
|
+
return absolute
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def atomic_publish(output: Path, populate: Callable[[Path], None]) -> None:
|
|
243
|
+
"""Populate a sibling staging tree and publish it with rollback."""
|
|
244
|
+
output = validate_output_tree(output)
|
|
245
|
+
output.parent.mkdir(parents=True, exist_ok=True)
|
|
246
|
+
output = validate_output_tree(output)
|
|
247
|
+
stage = Path(tempfile.mkdtemp(prefix=f".{output.name}.stage-", dir=str(output.parent)))
|
|
248
|
+
parent_identity = _identity(output.parent)
|
|
249
|
+
output_identity = _identity(output)
|
|
250
|
+
backup = None
|
|
251
|
+
published = False
|
|
252
|
+
try:
|
|
253
|
+
if output_identity is not None:
|
|
254
|
+
shutil.copytree(str(output), str(stage), dirs_exist_ok=True, symlinks=True)
|
|
255
|
+
validate_output_tree(stage)
|
|
256
|
+
populate(stage)
|
|
257
|
+
validate_output_tree(stage)
|
|
258
|
+
if _identity(output.parent) != parent_identity or _identity(output) != output_identity:
|
|
259
|
+
raise RuntimeError("output identity changed before publication")
|
|
260
|
+
|
|
261
|
+
if output_identity is not None:
|
|
262
|
+
backup = Path(tempfile.mkdtemp(prefix=f".{output.name}.backup-", dir=str(output.parent)))
|
|
263
|
+
backup.rmdir()
|
|
264
|
+
os.replace(str(output), str(backup))
|
|
265
|
+
try:
|
|
266
|
+
os.replace(str(stage), str(output))
|
|
267
|
+
except BaseException:
|
|
268
|
+
os.replace(str(backup), str(output))
|
|
269
|
+
backup = None
|
|
270
|
+
raise
|
|
271
|
+
shutil.rmtree(str(backup))
|
|
272
|
+
backup = None
|
|
273
|
+
else:
|
|
274
|
+
os.replace(str(stage), str(output))
|
|
275
|
+
published = True
|
|
276
|
+
finally:
|
|
277
|
+
if not published and stage.exists():
|
|
278
|
+
shutil.rmtree(str(stage))
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
def goal_to_title(goal: str) -> str:
|
|
282
|
+
words = goal.split()
|
|
283
|
+
short = " ".join(words[:8])
|
|
284
|
+
if len(words) > 8:
|
|
285
|
+
short += "..."
|
|
286
|
+
return short.title()
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
def researcher_ids(count: int) -> List[str]:
|
|
290
|
+
return [string.ascii_uppercase[i] for i in range(count)]
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
def remove_known_run_artifacts(output: Path) -> List[str]:
|
|
294
|
+
"""Remove only prior-run files owned by this workflow."""
|
|
295
|
+
candidates = [
|
|
296
|
+
output / "synthesis.md",
|
|
297
|
+
output / "final_report.md",
|
|
298
|
+
output / "results.png",
|
|
299
|
+
output / ".autoconference-loop.pid",
|
|
300
|
+
]
|
|
301
|
+
for pattern in [
|
|
302
|
+
"researcher_*_log.md",
|
|
303
|
+
"researcher_*_results.tsv",
|
|
304
|
+
"poster_session_round_*.md",
|
|
305
|
+
"peer_review_round_*.md",
|
|
306
|
+
]:
|
|
307
|
+
candidates.extend(output.glob(pattern))
|
|
308
|
+
|
|
309
|
+
candidates = sorted(set(candidates), key=lambda item: item.name)
|
|
310
|
+
for artifact in candidates:
|
|
311
|
+
if artifact.is_symlink():
|
|
312
|
+
raise RuntimeError(f"refusing to remove symlink run artifact: {artifact}")
|
|
313
|
+
if artifact.exists() and not artifact.is_file():
|
|
314
|
+
raise RuntimeError(f"refusing to remove non-file run artifact: {artifact}")
|
|
315
|
+
|
|
316
|
+
removed = []
|
|
317
|
+
for artifact in candidates:
|
|
318
|
+
if artifact.is_file():
|
|
319
|
+
artifact.unlink()
|
|
320
|
+
removed.append(artifact.name)
|
|
321
|
+
return removed
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
def make_researcher_sections(rids: List[str], strategy: str) -> str:
|
|
325
|
+
if strategy != "assigned":
|
|
326
|
+
return ""
|
|
327
|
+
lines = []
|
|
328
|
+
for rid in rids:
|
|
329
|
+
lines.append(f"### Researcher {rid} Focus")
|
|
330
|
+
lines.append(f"_Describe Researcher {rid}'s exploration area._")
|
|
331
|
+
lines.append("")
|
|
332
|
+
return "\n".join(lines)
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def parse_args() -> argparse.Namespace:
|
|
336
|
+
parser = argparse.ArgumentParser(
|
|
337
|
+
description="Scaffold a new autoconference-skill project.",
|
|
338
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
339
|
+
epilog=textwrap.dedent("""\
|
|
340
|
+
Examples:
|
|
341
|
+
# Metric mode
|
|
342
|
+
python init_conference.py \\
|
|
343
|
+
--goal "Optimize inference latency" \\
|
|
344
|
+
--metric "p95_latency_ms" \\
|
|
345
|
+
--direction minimize \\
|
|
346
|
+
--target "< 50" \\
|
|
347
|
+
--researchers 3 \\
|
|
348
|
+
--devils-advocate yes \\
|
|
349
|
+
--strategy assigned \\
|
|
350
|
+
--output ./my-conference/
|
|
351
|
+
|
|
352
|
+
# Qualitative mode
|
|
353
|
+
python init_conference.py \\
|
|
354
|
+
--goal "Survey LLM agent papers" \\
|
|
355
|
+
--mode qualitative \\
|
|
356
|
+
--criteria "Comprehensive taxonomy with 15+ papers" \\
|
|
357
|
+
--researchers 2 \\
|
|
358
|
+
--output ./lit-review/
|
|
359
|
+
"""),
|
|
360
|
+
)
|
|
361
|
+
parser.add_argument("--goal", required=True, help="Conference goal description.")
|
|
362
|
+
parser.add_argument(
|
|
363
|
+
"--mode",
|
|
364
|
+
default="metric",
|
|
365
|
+
choices=["metric", "qualitative"],
|
|
366
|
+
help="Conference mode. Default: metric",
|
|
367
|
+
)
|
|
368
|
+
parser.add_argument(
|
|
369
|
+
"--metric",
|
|
370
|
+
default=None,
|
|
371
|
+
help="Metric name to track (required for metric mode).",
|
|
372
|
+
)
|
|
373
|
+
parser.add_argument(
|
|
374
|
+
"--direction",
|
|
375
|
+
default=None,
|
|
376
|
+
choices=["maximize", "minimize"],
|
|
377
|
+
help="Whether to maximize or minimize the metric (required for metric mode).",
|
|
378
|
+
)
|
|
379
|
+
parser.add_argument(
|
|
380
|
+
"--target",
|
|
381
|
+
default=None,
|
|
382
|
+
help="Target value or expression (e.g. '> 0.9', '< 50'). Required for metric mode.",
|
|
383
|
+
)
|
|
384
|
+
parser.add_argument(
|
|
385
|
+
"--criteria",
|
|
386
|
+
default=None,
|
|
387
|
+
help="Success criteria text (required for qualitative mode).",
|
|
388
|
+
)
|
|
389
|
+
parser.add_argument(
|
|
390
|
+
"--researchers",
|
|
391
|
+
type=int,
|
|
392
|
+
default=3,
|
|
393
|
+
metavar="N",
|
|
394
|
+
help="Number of researchers. Default: 3",
|
|
395
|
+
)
|
|
396
|
+
parser.add_argument(
|
|
397
|
+
"--strategy",
|
|
398
|
+
default="free",
|
|
399
|
+
choices=["assigned", "free"],
|
|
400
|
+
help="Search space partitioning strategy. Default: free",
|
|
401
|
+
)
|
|
402
|
+
parser.add_argument(
|
|
403
|
+
"--iterations-per-round",
|
|
404
|
+
type=int,
|
|
405
|
+
default=5,
|
|
406
|
+
metavar="N",
|
|
407
|
+
help="Iterations per round per researcher. Default: 5",
|
|
408
|
+
)
|
|
409
|
+
parser.add_argument(
|
|
410
|
+
"--max-rounds",
|
|
411
|
+
type=int,
|
|
412
|
+
default=4,
|
|
413
|
+
metavar="N",
|
|
414
|
+
help="Maximum number of rounds. Default: 4",
|
|
415
|
+
)
|
|
416
|
+
parser.add_argument(
|
|
417
|
+
"--devils-advocate",
|
|
418
|
+
default=None,
|
|
419
|
+
choices=["yes", "no"],
|
|
420
|
+
help=(
|
|
421
|
+
"Whether one researcher should be assigned as a Devil's Advocate. "
|
|
422
|
+
"If omitted, conference.md marks this as a required user prompt before running."
|
|
423
|
+
),
|
|
424
|
+
)
|
|
425
|
+
parser.add_argument(
|
|
426
|
+
"--guard",
|
|
427
|
+
default=None,
|
|
428
|
+
help="Safety constraint applied to all researchers (e.g., 'Do not modify the test set').",
|
|
429
|
+
)
|
|
430
|
+
parser.add_argument(
|
|
431
|
+
"--noise-runs",
|
|
432
|
+
type=int,
|
|
433
|
+
default=1,
|
|
434
|
+
metavar="N",
|
|
435
|
+
help="Repeated evaluations to average for noise reduction. Default: 1",
|
|
436
|
+
)
|
|
437
|
+
parser.add_argument(
|
|
438
|
+
"--min-delta",
|
|
439
|
+
type=float,
|
|
440
|
+
default=0.0,
|
|
441
|
+
metavar="F",
|
|
442
|
+
help="Minimum average improvement across kept researchers to advance. Default: 0.0",
|
|
443
|
+
)
|
|
444
|
+
parser.add_argument(
|
|
445
|
+
"--output",
|
|
446
|
+
default="./conference/",
|
|
447
|
+
metavar="PATH",
|
|
448
|
+
help="Output directory. Default: ./conference/",
|
|
449
|
+
)
|
|
450
|
+
parser.add_argument(
|
|
451
|
+
"--force",
|
|
452
|
+
action="store_true",
|
|
453
|
+
help=(
|
|
454
|
+
"Reinitialize managed scaffold files while preserving regular user files "
|
|
455
|
+
"without prompting."
|
|
456
|
+
),
|
|
457
|
+
)
|
|
458
|
+
return parser.parse_args()
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
def validate_args(args: argparse.Namespace) -> None:
|
|
462
|
+
if args.mode == "metric":
|
|
463
|
+
if not args.metric:
|
|
464
|
+
print("Error: --metric is required when --mode is metric.", file=sys.stderr)
|
|
465
|
+
sys.exit(1)
|
|
466
|
+
if not args.direction:
|
|
467
|
+
print("Error: --direction is required when --mode is metric.", file=sys.stderr)
|
|
468
|
+
sys.exit(1)
|
|
469
|
+
normalized_target = args.target.strip().lower() if args.target else ""
|
|
470
|
+
if not normalized_target or normalized_target in {"tbd", "todo", "unknown"}:
|
|
471
|
+
print("Error: --target is required when --mode is metric.", file=sys.stderr)
|
|
472
|
+
sys.exit(1)
|
|
473
|
+
elif args.mode == "qualitative":
|
|
474
|
+
if not args.criteria:
|
|
475
|
+
print("Error: --criteria is required when --mode is qualitative.", file=sys.stderr)
|
|
476
|
+
sys.exit(1)
|
|
477
|
+
|
|
478
|
+
if args.researchers < 1:
|
|
479
|
+
print("Error: --researchers must be >= 1.", file=sys.stderr)
|
|
480
|
+
sys.exit(1)
|
|
481
|
+
|
|
482
|
+
if args.researchers > 26:
|
|
483
|
+
print("Error: --researchers must be <= 26.", file=sys.stderr)
|
|
484
|
+
sys.exit(1)
|
|
485
|
+
|
|
486
|
+
if args.iterations_per_round < 1:
|
|
487
|
+
print("Error: --iterations-per-round must be >= 1.", file=sys.stderr)
|
|
488
|
+
sys.exit(1)
|
|
489
|
+
|
|
490
|
+
if args.max_rounds < 1:
|
|
491
|
+
print("Error: --max-rounds must be >= 1.", file=sys.stderr)
|
|
492
|
+
sys.exit(1)
|
|
493
|
+
|
|
494
|
+
if args.noise_runs < 1:
|
|
495
|
+
print("Error: --noise-runs must be >= 1.", file=sys.stderr)
|
|
496
|
+
sys.exit(1)
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
def scaffold(args: argparse.Namespace, output: Path) -> tuple:
|
|
500
|
+
date = datetime.now().strftime("%Y-%m-%d")
|
|
501
|
+
title = goal_to_title(args.goal)
|
|
502
|
+
rids = researcher_ids(args.researchers)
|
|
503
|
+
max_total_iterations = args.researchers * args.iterations_per_round * args.max_rounds
|
|
504
|
+
researcher_sections = make_researcher_sections(rids, args.strategy)
|
|
505
|
+
guard_text = args.guard if args.guard else "_No guard constraint. Leave blank or define a safety invariant._"
|
|
506
|
+
noise_runs = args.noise_runs
|
|
507
|
+
min_delta = args.min_delta
|
|
508
|
+
if args.devils_advocate == "yes":
|
|
509
|
+
critic_setting = "enabled"
|
|
510
|
+
elif args.devils_advocate == "no":
|
|
511
|
+
critic_setting = "disabled"
|
|
512
|
+
else:
|
|
513
|
+
critic_setting = "ask user before run"
|
|
514
|
+
|
|
515
|
+
# Create workspace subdirectory
|
|
516
|
+
(output / "workspace").mkdir(exist_ok=True)
|
|
517
|
+
|
|
518
|
+
# Write conference.md
|
|
519
|
+
if args.mode == "metric":
|
|
520
|
+
gate_success_definition = f"metric {args.metric} ({args.direction}) target {args.target}"
|
|
521
|
+
conf_text = CONFERENCE_TEMPLATE_METRIC.format(
|
|
522
|
+
title=title,
|
|
523
|
+
goal=args.goal,
|
|
524
|
+
metric=args.metric,
|
|
525
|
+
target=args.target,
|
|
526
|
+
direction=args.direction,
|
|
527
|
+
researchers=args.researchers,
|
|
528
|
+
iterations_per_round=args.iterations_per_round,
|
|
529
|
+
max_rounds=args.max_rounds,
|
|
530
|
+
strategy=args.strategy,
|
|
531
|
+
researcher_sections=researcher_sections,
|
|
532
|
+
max_total_iterations=max_total_iterations,
|
|
533
|
+
guard=guard_text,
|
|
534
|
+
noise_runs=noise_runs,
|
|
535
|
+
min_delta=min_delta,
|
|
536
|
+
gate_success_definition=gate_success_definition,
|
|
537
|
+
critic_setting=critic_setting,
|
|
538
|
+
)
|
|
539
|
+
else:
|
|
540
|
+
gate_success_definition = f"criteria: {args.criteria}"
|
|
541
|
+
conf_text = CONFERENCE_TEMPLATE_QUALITATIVE.format(
|
|
542
|
+
title=title,
|
|
543
|
+
goal=args.goal,
|
|
544
|
+
criteria=args.criteria,
|
|
545
|
+
researchers=args.researchers,
|
|
546
|
+
iterations_per_round=args.iterations_per_round,
|
|
547
|
+
max_rounds=args.max_rounds,
|
|
548
|
+
strategy=args.strategy,
|
|
549
|
+
researcher_sections=researcher_sections,
|
|
550
|
+
max_total_iterations=max_total_iterations,
|
|
551
|
+
guard=guard_text,
|
|
552
|
+
noise_runs=noise_runs,
|
|
553
|
+
min_delta=min_delta,
|
|
554
|
+
gate_success_definition=gate_success_definition,
|
|
555
|
+
critic_setting=critic_setting,
|
|
556
|
+
)
|
|
557
|
+
(output / "conference.md").write_text(conf_text)
|
|
558
|
+
|
|
559
|
+
# Write per-researcher files
|
|
560
|
+
for rid in rids:
|
|
561
|
+
log = LOG_TEMPLATE.format(rid=rid, date=date, goal=args.goal)
|
|
562
|
+
(output / f"researcher_{rid}_log.md").write_text(log)
|
|
563
|
+
|
|
564
|
+
tsv = RESEARCHER_TSV_HEADER + RESEARCHER_TSV_BASELINE.format(date=date)
|
|
565
|
+
(output / f"researcher_{rid}_results.tsv").write_text(tsv)
|
|
566
|
+
|
|
567
|
+
# Write conference_results.tsv (header only)
|
|
568
|
+
(output / "conference_results.tsv").write_text(CONFERENCE_TSV_HEADER)
|
|
569
|
+
|
|
570
|
+
# Write conference_events.jsonl (empty)
|
|
571
|
+
(output / "conference_events.jsonl").write_text("")
|
|
572
|
+
|
|
573
|
+
return (rids, max_total_iterations, gate_success_definition, critic_setting)
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
def print_success(output: Path, details: tuple) -> None:
|
|
577
|
+
rids, max_total_iterations, gate_success_definition, critic_setting = details
|
|
578
|
+
print(f"\nINCOMPLETE scaffold created at: {output.resolve()}")
|
|
579
|
+
print("\nFiles created:")
|
|
580
|
+
print(" conference.md")
|
|
581
|
+
for rid in rids:
|
|
582
|
+
print(f" researcher_{rid}_log.md")
|
|
583
|
+
print(f" researcher_{rid}_results.tsv")
|
|
584
|
+
print(" conference_results.tsv")
|
|
585
|
+
print(" conference_events.jsonl")
|
|
586
|
+
print(" workspace/")
|
|
587
|
+
print("\nPre-flight gate:")
|
|
588
|
+
print(f" Researcher count: {len(rids)}")
|
|
589
|
+
print(f" Max total iterations: {max_total_iterations}")
|
|
590
|
+
print(f" Success definition: {gate_success_definition}")
|
|
591
|
+
print(f" Critic / Devil's Advocate: {critic_setting}")
|
|
592
|
+
print(" Final confirmation: pending before Phase 1")
|
|
593
|
+
print("\nNext steps — this is an incomplete scaffold with placeholders:")
|
|
594
|
+
print(" 1. Through explicit /start-work, fill in 'Current Approach' and 'Search Space'.")
|
|
595
|
+
print(" 2. Edit researcher focus areas if using 'assigned' strategy.")
|
|
596
|
+
print(" 3. Validate every placeholder, evaluator receipt, root, and task packet.")
|
|
597
|
+
print(" 4. Only then may the approved finite conference continue through explicit /start-work.")
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
def main() -> None:
|
|
601
|
+
args = parse_args()
|
|
602
|
+
validate_args(args)
|
|
603
|
+
output = validate_output_tree(Path(args.output))
|
|
604
|
+
if output.exists() and any(output.iterdir()) and not args.force:
|
|
605
|
+
print(
|
|
606
|
+
f"Error: output directory '{output}' already exists and is not empty. "
|
|
607
|
+
"Use --force to reinitialize managed scaffold files.",
|
|
608
|
+
file=sys.stderr,
|
|
609
|
+
)
|
|
610
|
+
sys.exit(1)
|
|
611
|
+
|
|
612
|
+
removed = []
|
|
613
|
+
details = []
|
|
614
|
+
def populate(stage: Path) -> None:
|
|
615
|
+
removed.extend(remove_known_run_artifacts(stage))
|
|
616
|
+
details.append(scaffold(args, stage))
|
|
617
|
+
|
|
618
|
+
atomic_publish(output, populate)
|
|
619
|
+
if removed:
|
|
620
|
+
print(f"Removed stale run artifacts: {', '.join(removed)}")
|
|
621
|
+
print_success(output, details[0])
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
if __name__ == "__main__":
|
|
625
|
+
main()
|