session-orchestrator 3.16.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/.claude-plugin/marketplace.json +29 -0
- package/.claude-plugin/plugin.json +18 -0
- package/.codex-plugin/agents/explorer.toml +14 -0
- package/.codex-plugin/agents/session-reviewer.toml +23 -0
- package/.codex-plugin/agents/wave-worker.toml +15 -0
- package/.codex-plugin/config.toml +20 -0
- package/.codex-plugin/plugin.json +37 -0
- package/.cursor/rules/000-session-orchestrator.mdc +73 -0
- package/.cursor/rules/010-session-workflow.mdc +170 -0
- package/.cursor/rules/020-quality-gates.mdc +128 -0
- package/.cursor/rules/030-wave-execution.mdc +216 -0
- package/.cursor/rules/040-discovery.mdc +242 -0
- package/.cursor/rules/050-plan.mdc +235 -0
- package/.cursor/rules/060-evolve.mdc +232 -0
- package/.cursor/rules/070-gitlab-ops.mdc +246 -0
- package/.cursor/rules/080-ecosystem-health.mdc +145 -0
- package/.mcp.json +8 -0
- package/CHANGELOG.md +1544 -0
- package/LICENSE +21 -0
- package/NOTICE +64 -0
- package/README.md +242 -0
- package/SECURITY.md +90 -0
- package/agents/AGENTS.md +136 -0
- package/agents/analyst.md +99 -0
- package/agents/architect-reviewer.md +93 -0
- package/agents/code-implementer.md +106 -0
- package/agents/db-specialist.md +104 -0
- package/agents/dialectic-deriver.md +139 -0
- package/agents/docs-writer.md +113 -0
- package/agents/eval-judge.md +146 -0
- package/agents/memory-proposal-collector.md +297 -0
- package/agents/qa-strategist.md +102 -0
- package/agents/schemas/analyst.schema.json +46 -0
- package/agents/schemas/architect-reviewer.schema.json +50 -0
- package/agents/schemas/code-implementer.schema.json +61 -0
- package/agents/schemas/db-specialist.schema.json +80 -0
- package/agents/schemas/docs-writer.schema.json +56 -0
- package/agents/schemas/persona-panel-sidecar.schema.json +245 -0
- package/agents/schemas/qa-strategist.schema.json +46 -0
- package/agents/schemas/security-reviewer.schema.json +86 -0
- package/agents/schemas/session-reviewer.schema.json +69 -0
- package/agents/schemas/test-writer.schema.json +69 -0
- package/agents/schemas/ui-developer.schema.json +90 -0
- package/agents/schemas/ux-evaluator.schema.json +51 -0
- package/agents/security-reviewer.md +236 -0
- package/agents/session-reviewer.md +201 -0
- package/agents/skill-applied-judge.md +122 -0
- package/agents/test-writer.md +123 -0
- package/agents/ui-developer.md +109 -0
- package/agents/ux-evaluator.md +161 -0
- package/assets/icon.svg +11 -0
- package/assets/og-card.png +0 -0
- package/assets/og-card.svg +47 -0
- package/commands/autopilot-multi.md +74 -0
- package/commands/autopilot.md +80 -0
- package/commands/bootstrap.md +56 -0
- package/commands/brainstorm.md +48 -0
- package/commands/close.md +24 -0
- package/commands/debug.md +36 -0
- package/commands/discovery.md +32 -0
- package/commands/dispatcher.md +59 -0
- package/commands/eval.md +28 -0
- package/commands/evolve.md +10 -0
- package/commands/go.md +41 -0
- package/commands/grill.md +45 -0
- package/commands/harness-audit.md +26 -0
- package/commands/memory-cleanup.md +25 -0
- package/commands/persona-panel.md +121 -0
- package/commands/plan.md +15 -0
- package/commands/portfolio.md +97 -0
- package/commands/reconcile.md +23 -0
- package/commands/repo-audit.md +24 -0
- package/commands/session.md +30 -0
- package/commands/spinout.md +15 -0
- package/commands/sunset-review.md +27 -0
- package/commands/templates-ack.md +96 -0
- package/commands/test.md +97 -0
- package/docs/README.md +105 -0
- package/docs/USER-GUIDE.md +1403 -0
- package/docs/ci-setup.md +81 -0
- package/docs/codex-setup.md +142 -0
- package/docs/components.md +74 -0
- package/docs/cursor-setup.md +104 -0
- package/docs/events-schema.md +81 -0
- package/docs/migration-v3.md +148 -0
- package/docs/owner-config-schema.md +154 -0
- package/docs/persona-panel.md +433 -0
- package/docs/pi-setup.md +115 -0
- package/docs/plugin-architecture-v3.md +296 -0
- package/docs/pm-skills-marketplace.md +114 -0
- package/docs/policy-cache-validation-2026-04-28.md +118 -0
- package/docs/rule-authoring.md +316 -0
- package/docs/session-config-reference.md +1439 -0
- package/docs/session-config-template.md +961 -0
- package/docs/vault-docs-architecture.md +297 -0
- package/hooks/_lib/lock-bootstrap.mjs +272 -0
- package/hooks/_lib/lock-reconcile.mjs +93 -0
- package/hooks/_lib/profile-gate.mjs +95 -0
- package/hooks/_lib/transcript-history.mjs +211 -0
- package/hooks/agent-teams-h3-test.sh +362 -0
- package/hooks/config-protection.mjs +0 -0
- package/hooks/cwd-change-restore.mjs +131 -0
- package/hooks/enforce-commands.mjs +179 -0
- package/hooks/enforce-scope.mjs +273 -0
- package/hooks/hooks-codex.json +60 -0
- package/hooks/hooks-cursor.json +15 -0
- package/hooks/hooks-pi.json +115 -0
- package/hooks/hooks.json +215 -0
- package/hooks/loop-guard.mjs +260 -0
- package/hooks/on-session-end.mjs +217 -0
- package/hooks/on-session-start.mjs +660 -0
- package/hooks/on-stop.mjs +294 -0
- package/hooks/operator-steer.mjs +64 -0
- package/hooks/post-edit-validate.mjs +225 -0
- package/hooks/post-subagent-discovery-validator.mjs +398 -0
- package/hooks/post-tool-batch-wave-signal.mjs +328 -0
- package/hooks/post-tool-failure-corrective-context.mjs +248 -0
- package/hooks/post-tooluse-frontend-slop.mjs +184 -0
- package/hooks/pre-bash-destructive-guard.mjs +515 -0
- package/hooks/pre-bash-memory-propose-audit.mjs +206 -0
- package/hooks/pre-bash-staging-fence.mjs +223 -0
- package/hooks/pre-bash-templates-first.mjs +404 -0
- package/hooks/run-node.sh +72 -0
- package/hooks/skill-invocation-telemetry.mjs +99 -0
- package/hooks/subagent-telemetry.mjs +249 -0
- package/hooks/wave-scope-commit-guard.mjs +191 -0
- package/monitors/monitors.json +14 -0
- package/output-styles/finding-report.md +48 -0
- package/output-styles/session-report.md +53 -0
- package/output-styles/wave-summary.md +38 -0
- package/package.json +94 -0
- package/pi/extensions/session-orchestrator.ts +25 -0
- package/pi/prompts/autopilot-multi.md +12 -0
- package/pi/prompts/autopilot.md +12 -0
- package/pi/prompts/bootstrap.md +12 -0
- package/pi/prompts/brainstorm.md +12 -0
- package/pi/prompts/close.md +11 -0
- package/pi/prompts/debug.md +12 -0
- package/pi/prompts/discovery.md +12 -0
- package/pi/prompts/dispatcher.md +12 -0
- package/pi/prompts/eval.md +12 -0
- package/pi/prompts/evolve.md +12 -0
- package/pi/prompts/go.md +12 -0
- package/pi/prompts/grill.md +12 -0
- package/pi/prompts/harness-audit.md +12 -0
- package/pi/prompts/memory-cleanup.md +12 -0
- package/pi/prompts/persona-panel.md +12 -0
- package/pi/prompts/plan.md +12 -0
- package/pi/prompts/portfolio.md +12 -0
- package/pi/prompts/reconcile.md +12 -0
- package/pi/prompts/repo-audit.md +12 -0
- package/pi/prompts/session.md +12 -0
- package/pi/prompts/spinout.md +12 -0
- package/pi/prompts/sunset-review.md +12 -0
- package/pi/prompts/templates-ack.md +12 -0
- package/pi/prompts/test.md +12 -0
- package/rules/_index.md +51 -0
- package/rules/always-on/commit-discipline.md +26 -0
- package/rules/always-on/npm-quality-gates.md +26 -0
- package/rules/always-on/parallel-sessions.md +43 -0
- package/rules/opt-in-domain/prompt-caching.md +270 -0
- package/rules/opt-in-stack/backend-data.md +188 -0
- package/rules/opt-in-stack/backend.md +390 -0
- package/rules/opt-in-stack/frontend.md +98 -0
- package/rules/opt-in-stack/security-web.md +194 -0
- package/rules/opt-in-stack/swift.md +65 -0
- package/scripts/archive-closed-prds.mjs +416 -0
- package/scripts/autopilot-multi.mjs +802 -0
- package/scripts/autopilot.mjs +383 -0
- package/scripts/backfill-abandoned-sessions.mjs +265 -0
- package/scripts/backfill-learnings-expires.mjs +196 -0
- package/scripts/backfill-learnings.mjs +203 -0
- package/scripts/backfill-sessions.mjs +282 -0
- package/scripts/check-doc-consistency.sh +279 -0
- package/scripts/check-package-manager.mjs +445 -0
- package/scripts/ci/assert-vitest-green.mjs +267 -0
- package/scripts/codex-install.mjs +435 -0
- package/scripts/compute-grounding-injection.sh +186 -0
- package/scripts/cursor-install.mjs +113 -0
- package/scripts/dialectic-deriver.mjs +573 -0
- package/scripts/emit-event.mjs +160 -0
- package/scripts/emit-session.mjs +212 -0
- package/scripts/eval-session.mjs +262 -0
- package/scripts/export-hw-learnings.mjs +437 -0
- package/scripts/gc-stale-worktrees.mjs +666 -0
- package/scripts/generate-pi-prompts.mjs +127 -0
- package/scripts/harness-audit.mjs +287 -0
- package/scripts/lib/agent-frontmatter.mjs +266 -0
- package/scripts/lib/agent-output-schema.mjs +166 -0
- package/scripts/lib/agent-status.mjs +303 -0
- package/scripts/lib/ajv-loader.mjs +34 -0
- package/scripts/lib/auto-dialectic.mjs +382 -0
- package/scripts/lib/auto-dream.mjs +471 -0
- package/scripts/lib/autonomy/suitability.mjs +212 -0
- package/scripts/lib/autopilot/dep-graph.mjs +417 -0
- package/scripts/lib/autopilot/durable-telemetry.mjs +121 -0
- package/scripts/lib/autopilot/flags.mjs +104 -0
- package/scripts/lib/autopilot/kill-switches.mjs +174 -0
- package/scripts/lib/autopilot/loop.mjs +320 -0
- package/scripts/lib/autopilot/mr-draft.mjs +520 -0
- package/scripts/lib/autopilot/multi-killswitch.mjs +184 -0
- package/scripts/lib/autopilot/recent-runs.mjs +106 -0
- package/scripts/lib/autopilot/stall-sampler.mjs +97 -0
- package/scripts/lib/autopilot/telemetry.mjs +224 -0
- package/scripts/lib/autopilot/worktree-pipeline.mjs +605 -0
- package/scripts/lib/autopilot-telemetry.mjs +11 -0
- package/scripts/lib/autopilot.mjs +39 -0
- package/scripts/lib/backlog-scan.mjs +179 -0
- package/scripts/lib/bootstrap-lock-freshness.mjs +260 -0
- package/scripts/lib/bootstrap-lock-refresh.mjs +186 -0
- package/scripts/lib/build-live-signals.mjs +150 -0
- package/scripts/lib/ci-status-banner.mjs +425 -0
- package/scripts/lib/claude-md-budget-lint.mjs +246 -0
- package/scripts/lib/cli-flags.mjs +158 -0
- package/scripts/lib/codex/plugin-contract.mjs +610 -0
- package/scripts/lib/cold-start-detector.mjs +240 -0
- package/scripts/lib/command-blocker.mjs +458 -0
- package/scripts/lib/common.mjs +333 -0
- package/scripts/lib/config/auto-dream.mjs +77 -0
- package/scripts/lib/config/block-header.mjs +94 -0
- package/scripts/lib/config/broken-window.mjs +114 -0
- package/scripts/lib/config/coercers.mjs +248 -0
- package/scripts/lib/config/cold-start.mjs +92 -0
- package/scripts/lib/config/config-protection.mjs +120 -0
- package/scripts/lib/config/cross-repo.mjs +104 -0
- package/scripts/lib/config/custom-phases.mjs +213 -0
- package/scripts/lib/config/dialectic.mjs +92 -0
- package/scripts/lib/config/discovery-validator.mjs +75 -0
- package/scripts/lib/config/dispatcher-autonomy-capture.mjs +240 -0
- package/scripts/lib/config/dispatcher-autonomy.mjs +152 -0
- package/scripts/lib/config/docs-orchestrator.mjs +90 -0
- package/scripts/lib/config/docs-staleness.mjs +96 -0
- package/scripts/lib/config/drift-check.mjs +155 -0
- package/scripts/lib/config/eval.mjs +130 -0
- package/scripts/lib/config/events-rotation.mjs +74 -0
- package/scripts/lib/config/evolve.mjs +308 -0
- package/scripts/lib/config/frontend-slop-hook.mjs +104 -0
- package/scripts/lib/config/gitlab-portfolio.mjs +150 -0
- package/scripts/lib/config/handover-gate.mjs +106 -0
- package/scripts/lib/config/host-paths.mjs +76 -0
- package/scripts/lib/config/io.mjs +54 -0
- package/scripts/lib/config/loop-guard.mjs +117 -0
- package/scripts/lib/config/memory.mjs +150 -0
- package/scripts/lib/config/persona-gate-wave.mjs +258 -0
- package/scripts/lib/config/reconcile.mjs +205 -0
- package/scripts/lib/config/section-extractor.mjs +100 -0
- package/scripts/lib/config/skill-evolution.mjs +112 -0
- package/scripts/lib/config/slopcheck.mjs +99 -0
- package/scripts/lib/config/state-md-lock.mjs +83 -0
- package/scripts/lib/config/templates-first.mjs +94 -0
- package/scripts/lib/config/test.mjs +113 -0
- package/scripts/lib/config/vault-integration.mjs +201 -0
- package/scripts/lib/config/vault-mirror-quality.mjs +99 -0
- package/scripts/lib/config/vault-staleness.mjs +84 -0
- package/scripts/lib/config/vault-sync.mjs +96 -0
- package/scripts/lib/config/verification-auto-fix.mjs +84 -0
- package/scripts/lib/config/wave-reviewers.mjs +133 -0
- package/scripts/lib/config-schema.mjs +345 -0
- package/scripts/lib/config.mjs +474 -0
- package/scripts/lib/convergence-monitor.mjs +389 -0
- package/scripts/lib/coordinator-snapshot.mjs +371 -0
- package/scripts/lib/crypto-digest-utils.mjs +91 -0
- package/scripts/lib/discovery/helpers.mjs +127 -0
- package/scripts/lib/discovery/triage-state.mjs +279 -0
- package/scripts/lib/dispatcher/cli.mjs +257 -0
- package/scripts/lib/dispatcher/enumerate.mjs +243 -0
- package/scripts/lib/dispatcher/rank.mjs +363 -0
- package/scripts/lib/ecosystem-health.mjs +224 -0
- package/scripts/lib/ecosystem-wizard/ci-detector.mjs +18 -0
- package/scripts/lib/ecosystem-wizard/config-parser.mjs +54 -0
- package/scripts/lib/ecosystem-wizard/config-writer.mjs +287 -0
- package/scripts/lib/ecosystem-wizard/package-manager-detector.mjs +42 -0
- package/scripts/lib/ecosystem-wizard/wizard-prompt.mjs +246 -0
- package/scripts/lib/ecosystem-wizard.mjs +48 -0
- package/scripts/lib/env-check.mjs +89 -0
- package/scripts/lib/eval/engine.mjs +605 -0
- package/scripts/lib/eval/judge.mjs +433 -0
- package/scripts/lib/eval/report.mjs +367 -0
- package/scripts/lib/eval/schema.mjs +618 -0
- package/scripts/lib/eval/session-resolve.mjs +137 -0
- package/scripts/lib/eval/sink.mjs +77 -0
- package/scripts/lib/events-rotation.mjs +86 -0
- package/scripts/lib/events-schema.mjs +81 -0
- package/scripts/lib/events.mjs +80 -0
- package/scripts/lib/evolve/autonomy-verdict.mjs +461 -0
- package/scripts/lib/evolve/autopilot-effectiveness.mjs +293 -0
- package/scripts/lib/exclusivity-matrix.mjs +68 -0
- package/scripts/lib/fetch-baseline.mjs +311 -0
- package/scripts/lib/file-lock.mjs +512 -0
- package/scripts/lib/frontend-detect/detect.mjs +138 -0
- package/scripts/lib/frontend-detect/rules.mjs +295 -0
- package/scripts/lib/frontmatter-guard.mjs +241 -0
- package/scripts/lib/gates/echo-stub-detect.mjs +39 -0
- package/scripts/lib/gates/gate-baseline.mjs +42 -0
- package/scripts/lib/gates/gate-full.mjs +85 -0
- package/scripts/lib/gates/gate-helpers.mjs +231 -0
- package/scripts/lib/gates/gate-incremental.mjs +76 -0
- package/scripts/lib/gates/gate-per-file.mjs +55 -0
- package/scripts/lib/gitlab-ops/stale-mr-sweep.mjs +447 -0
- package/scripts/lib/gitlab-portfolio/aggregator.mjs +383 -0
- package/scripts/lib/gitlab-portfolio/cli.mjs +428 -0
- package/scripts/lib/gitlab-portfolio/markdown-writer.mjs +289 -0
- package/scripts/lib/gitlab-portfolio/vcs-detect.mjs +182 -0
- package/scripts/lib/handover-gate.mjs +222 -0
- package/scripts/lib/hardening.mjs +43 -0
- package/scripts/lib/hardware-pattern-detector.mjs +238 -0
- package/scripts/lib/harness-audit/categories/category1.mjs +123 -0
- package/scripts/lib/harness-audit/categories/category2.mjs +145 -0
- package/scripts/lib/harness-audit/categories/category3.mjs +143 -0
- package/scripts/lib/harness-audit/categories/category4.mjs +202 -0
- package/scripts/lib/harness-audit/categories/category5.mjs +152 -0
- package/scripts/lib/harness-audit/categories/category6.mjs +211 -0
- package/scripts/lib/harness-audit/categories/category7.mjs +125 -0
- package/scripts/lib/harness-audit/categories/category8.mjs +328 -0
- package/scripts/lib/harness-audit/categories/category9.mjs +294 -0
- package/scripts/lib/harness-audit/categories/helpers.mjs +165 -0
- package/scripts/lib/harness-audit/categories.mjs +19 -0
- package/scripts/lib/historical-guard.mjs +15 -0
- package/scripts/lib/host-identity.mjs +262 -0
- package/scripts/lib/instruction-budget-guard.mjs +332 -0
- package/scripts/lib/io.mjs +304 -0
- package/scripts/lib/issue-close-strip-labels.mjs +161 -0
- package/scripts/lib/language-mappers/README.md +57 -0
- package/scripts/lib/language-mappers/index.mjs +165 -0
- package/scripts/lib/language-mappers/markdown.mjs +149 -0
- package/scripts/lib/language-mappers/python.mjs +249 -0
- package/scripts/lib/language-mappers/swift.mjs +201 -0
- package/scripts/lib/language-mappers/typescript.mjs +433 -0
- package/scripts/lib/learnings/expiry-sweep.mjs +164 -0
- package/scripts/lib/learnings/filters.mjs +43 -0
- package/scripts/lib/learnings/io.mjs +255 -0
- package/scripts/lib/learnings/schema.mjs +518 -0
- package/scripts/lib/learnings/surface.mjs +207 -0
- package/scripts/lib/learnings.mjs +42 -0
- package/scripts/lib/lock-reaper.mjs +648 -0
- package/scripts/lib/locks/index.mjs +31 -0
- package/scripts/lib/locks/lock-body.mjs +62 -0
- package/scripts/lib/locks/staging-fence-lock.mjs +267 -0
- package/scripts/lib/locks/state-md-lock.mjs +351 -0
- package/scripts/lib/loop-readiness-banner.mjs +144 -0
- package/scripts/lib/memory-banner.mjs +478 -0
- package/scripts/lib/memory-cleanup/worktree-sweep.mjs +108 -0
- package/scripts/lib/memory-cleanup-stamp.mjs +56 -0
- package/scripts/lib/memory-paths.mjs +31 -0
- package/scripts/lib/memory-proposals/collector.mjs +334 -0
- package/scripts/lib/memory-proposals/schema.mjs +289 -0
- package/scripts/lib/memory-proposals/sink.mjs +507 -0
- package/scripts/lib/memory-proposals/store.mjs +441 -0
- package/scripts/lib/mission-status-schema.mjs +114 -0
- package/scripts/lib/mode-selector/alternatives.mjs +64 -0
- package/scripts/lib/mode-selector/constants.mjs +29 -0
- package/scripts/lib/mode-selector/context-pressure.mjs +157 -0
- package/scripts/lib/mode-selector/rationale.mjs +55 -0
- package/scripts/lib/mode-selector/scoring.mjs +221 -0
- package/scripts/lib/mode-selector-accuracy.mjs +121 -0
- package/scripts/lib/mode-selector.mjs +160 -0
- package/scripts/lib/multi-provider-build/providers.mjs +64 -0
- package/scripts/lib/multi-provider-build/templating.mjs +130 -0
- package/scripts/lib/named-baseline-resolver.mjs +233 -0
- package/scripts/lib/named-vault-resolver.mjs +433 -0
- package/scripts/lib/owner-config/coerce.mjs +29 -0
- package/scripts/lib/owner-config/constants.mjs +21 -0
- package/scripts/lib/owner-config/defaults.mjs +50 -0
- package/scripts/lib/owner-config/error.mjs +19 -0
- package/scripts/lib/owner-config/index.mjs +13 -0
- package/scripts/lib/owner-config/merge.mjs +52 -0
- package/scripts/lib/owner-config/validate.mjs +259 -0
- package/scripts/lib/owner-config-banner.mjs +126 -0
- package/scripts/lib/owner-config-loader.mjs +159 -0
- package/scripts/lib/owner-config.example.yaml +72 -0
- package/scripts/lib/owner-config.mjs +28 -0
- package/scripts/lib/owner-interview.mjs +243 -0
- package/scripts/lib/owner-yaml.mjs +571 -0
- package/scripts/lib/package-manager.mjs +160 -0
- package/scripts/lib/path-utils.mjs +217 -0
- package/scripts/lib/peer-cards/merger.mjs +310 -0
- package/scripts/lib/peer-cards/reader.mjs +125 -0
- package/scripts/lib/peer-cards/schema.mjs +230 -0
- package/scripts/lib/peer-cards/staleness-banner.mjs +86 -0
- package/scripts/lib/peer-cards/writer.mjs +138 -0
- package/scripts/lib/peer-discovery.mjs +200 -0
- package/scripts/lib/persona-panel/catalog-loader.mjs +577 -0
- package/scripts/lib/persona-panel/consolidator.mjs +370 -0
- package/scripts/lib/persona-panel/persona-runner.mjs +375 -0
- package/scripts/lib/persona-panel/threshold.mjs +130 -0
- package/scripts/lib/pi-hook-bridge.mjs +328 -0
- package/scripts/lib/platform.mjs +266 -0
- package/scripts/lib/playwright-driver/runner.mjs +297 -0
- package/scripts/lib/plugin-root.mjs +210 -0
- package/scripts/lib/pre-dispatch-check.mjs +126 -0
- package/scripts/lib/product-repo-detect.mjs +121 -0
- package/scripts/lib/profiles/registry.mjs +176 -0
- package/scripts/lib/profiles/schema.mjs +209 -0
- package/scripts/lib/qg-command-drift-banner.mjs +88 -0
- package/scripts/lib/quality-gate/diagnostics.mjs +92 -0
- package/scripts/lib/quality-gate.mjs +536 -0
- package/scripts/lib/quality-gates-cache.mjs +228 -0
- package/scripts/lib/quality-gates-policy.mjs +95 -0
- package/scripts/lib/recommendations-v0.mjs +156 -0
- package/scripts/lib/reconcile/eligibility.mjs +203 -0
- package/scripts/lib/reconcile/emitter.mjs +244 -0
- package/scripts/lib/reconcile/engine.mjs +412 -0
- package/scripts/lib/reconcile/idempotency.mjs +239 -0
- package/scripts/lib/reconcile/renderer.mjs +211 -0
- package/scripts/lib/reconcile/writer.mjs +293 -0
- package/scripts/lib/reconcile-nudge-banner.mjs +284 -0
- package/scripts/lib/resource-probe/evaluate.mjs +190 -0
- package/scripts/lib/resource-probe/parsers.mjs +181 -0
- package/scripts/lib/resource-probe/probe-platform.mjs +300 -0
- package/scripts/lib/resource-probe.mjs +95 -0
- package/scripts/lib/rule-loader.mjs +552 -0
- package/scripts/lib/rules-sync.mjs +439 -0
- package/scripts/lib/scope-gate.mjs +496 -0
- package/scripts/lib/session-close-backfill.mjs +539 -0
- package/scripts/lib/session-discovery.mjs +256 -0
- package/scripts/lib/session-end/phase-skip.mjs +357 -0
- package/scripts/lib/session-end/worktree-cleanup.mjs +112 -0
- package/scripts/lib/session-id.mjs +362 -0
- package/scripts/lib/session-lock.mjs +703 -0
- package/scripts/lib/session-registry.mjs +355 -0
- package/scripts/lib/session-schema/aliases.mjs +71 -0
- package/scripts/lib/session-schema/constants.mjs +115 -0
- package/scripts/lib/session-schema/normalizer.mjs +66 -0
- package/scripts/lib/session-schema/timestamps.mjs +64 -0
- package/scripts/lib/session-schema/validator.mjs +453 -0
- package/scripts/lib/session-schema.mjs +71 -0
- package/scripts/lib/session-token-rollup.mjs +137 -0
- package/scripts/lib/sessions-staleness-banner.mjs +247 -0
- package/scripts/lib/skill-evolution/blast-radius-classifier.mjs +114 -0
- package/scripts/lib/skill-evolution/candidate-intake.mjs +270 -0
- package/scripts/lib/skill-evolution/config-validation-gate.mjs +279 -0
- package/scripts/lib/skill-evolution/engine.mjs +719 -0
- package/scripts/lib/skill-evolution/idempotency.mjs +279 -0
- package/scripts/lib/skill-evolution/mr-opener.mjs +507 -0
- package/scripts/lib/skill-health/join.mjs +181 -0
- package/scripts/lib/skill-health/score.mjs +123 -0
- package/scripts/lib/skill-invocations-schema.mjs +214 -0
- package/scripts/lib/skill-judge.mjs +348 -0
- package/scripts/lib/skill-judgments-schema.mjs +264 -0
- package/scripts/lib/slopcheck.mjs +501 -0
- package/scripts/lib/soul-resolve.mjs +118 -0
- package/scripts/lib/spiral-carryover.mjs +495 -0
- package/scripts/lib/state-md/body-sections.mjs +851 -0
- package/scripts/lib/state-md/frontmatter-mutators.mjs +453 -0
- package/scripts/lib/state-md/mission-status.mjs +247 -0
- package/scripts/lib/state-md/recommendations.mjs +57 -0
- package/scripts/lib/state-md/yaml-parser.mjs +234 -0
- package/scripts/lib/state-md-peer-guard.mjs +232 -0
- package/scripts/lib/state-md.mjs +53 -0
- package/scripts/lib/subagents-schema.mjs +309 -0
- package/scripts/lib/sunset/walker.mjs +1192 -0
- package/scripts/lib/test-runner/artifact-paths.mjs +94 -0
- package/scripts/lib/test-runner/fingerprint.mjs +33 -0
- package/scripts/lib/test-runner/issue-reconcile.mjs +770 -0
- package/scripts/lib/tmux-layout/layouts.mjs +224 -0
- package/scripts/lib/tmux-layout/telemetry-stats.mjs +100 -0
- package/scripts/lib/tmux-layout/telemetry.mjs +88 -0
- package/scripts/lib/tmux-layout/tmux-shell.mjs +82 -0
- package/scripts/lib/tmux-layout/vcs-detector.mjs +88 -0
- package/scripts/lib/validate/check-agents.mjs +457 -0
- package/scripts/lib/validate/check-codex-plugin.mjs +37 -0
- package/scripts/lib/validate/check-commands.mjs +148 -0
- package/scripts/lib/validate/check-component-paths.mjs +112 -0
- package/scripts/lib/validate/check-dead-bridge.mjs +180 -0
- package/scripts/lib/validate/check-hooks-symmetry.mjs +258 -0
- package/scripts/lib/validate/check-json-files.mjs +116 -0
- package/scripts/lib/validate/check-owner-leakage.mjs +1011 -0
- package/scripts/lib/validate/check-path-utils-canary.mjs +175 -0
- package/scripts/lib/validate/check-peekaboo-driver-canary.mjs +201 -0
- package/scripts/lib/validate/check-pi-package.mjs +110 -0
- package/scripts/lib/validate/check-pi-prompts.mjs +43 -0
- package/scripts/lib/validate/check-playwright-mcp-canary.mjs +154 -0
- package/scripts/lib/validate/check-plugin-json.mjs +96 -0
- package/scripts/lib/validate/check-plugin-monitors.mjs +206 -0
- package/scripts/lib/validate/check-plugin-schema.mjs +137 -0
- package/scripts/lib/validate/check-rules.mjs +143 -0
- package/scripts/lib/validate/check-session-plan-routing.mjs +154 -0
- package/scripts/lib/validate/check-test-fixture-shapes.mjs +280 -0
- package/scripts/lib/validate/check-unicode-safety.mjs +533 -0
- package/scripts/lib/validate/confidential-names.mjs +169 -0
- package/scripts/lib/validate/dead-bridge-corpus.mjs +141 -0
- package/scripts/lib/validate/dead-bridge-detectors.mjs +568 -0
- package/scripts/lib/validate/tier-inference.mjs +100 -0
- package/scripts/lib/validate-vendored-rules.mjs +519 -0
- package/scripts/lib/vault-archive.mjs +404 -0
- package/scripts/lib/vault-backfill/glab.mjs +164 -0
- package/scripts/lib/vault-backfill/manifest.mjs +75 -0
- package/scripts/lib/vault-backfill/template.mjs +130 -0
- package/scripts/lib/vault-consolidate-fs.mjs +331 -0
- package/scripts/lib/vault-migration-rules.mjs +155 -0
- package/scripts/lib/vault-mirror/auto-commit.mjs +203 -0
- package/scripts/lib/vault-mirror/namespace.mjs +152 -0
- package/scripts/lib/vault-mirror/process.mjs +567 -0
- package/scripts/lib/vault-mirror/pseudonym-map.mjs +164 -0
- package/scripts/lib/vault-mirror/render-learnings.mjs +201 -0
- package/scripts/lib/vault-mirror/render-sessions.mjs +367 -0
- package/scripts/lib/vault-mirror/render.mjs +8 -0
- package/scripts/lib/vault-mirror/utils.mjs +217 -0
- package/scripts/lib/vault-relocation-rules.mjs +555 -0
- package/scripts/lib/vault-repo-backfill.mjs +235 -0
- package/scripts/lib/vault-staleness-banner.mjs +142 -0
- package/scripts/lib/vault-status/board-writer.mjs +769 -0
- package/scripts/lib/vault-status/narrative-mirror.mjs +544 -0
- package/scripts/lib/vault-sync-baseline.mjs +152 -0
- package/scripts/lib/wave-context.mjs +29 -0
- package/scripts/lib/wave-executor/pool.mjs +248 -0
- package/scripts/lib/wave-resource-gate.mjs +204 -0
- package/scripts/lib/wave-sizing.mjs +75 -0
- package/scripts/lib/webhook-url.mjs +105 -0
- package/scripts/lib/workspace.mjs +198 -0
- package/scripts/lib/worktree/constants.mjs +35 -0
- package/scripts/lib/worktree/index.mjs +17 -0
- package/scripts/lib/worktree/lifecycle.mjs +287 -0
- package/scripts/lib/worktree/listing.mjs +118 -0
- package/scripts/lib/worktree/meta.mjs +64 -0
- package/scripts/lib/worktree-freshness.mjs +313 -0
- package/scripts/lib/worktree.mjs +15 -0
- package/scripts/lifecycle-sim-v6.mjs +347 -0
- package/scripts/lock-reaper.mjs +185 -0
- package/scripts/mcp-server.sh +241 -0
- package/scripts/measure-policy-cache-effectiveness.mjs +427 -0
- package/scripts/memory-propose.mjs +464 -0
- package/scripts/migrate-cold-start-seed.mjs +404 -0
- package/scripts/migrate-learnings-jsonl.mjs +189 -0
- package/scripts/migrate-legacy-learnings.sh +61 -0
- package/scripts/migrate-sessions-jsonl.mjs +448 -0
- package/scripts/migrate-subagents-jsonl.mjs +196 -0
- package/scripts/migrate-vault-paths.mjs +796 -0
- package/scripts/parse-config.mjs +149 -0
- package/scripts/pi-install.mjs +117 -0
- package/scripts/print-applicable-rules.mjs +247 -0
- package/scripts/promote-vault-strict.mjs +496 -0
- package/scripts/relocate-vault-corpus.mjs +1178 -0
- package/scripts/run-migrate-v2-cross-repo.mjs +385 -0
- package/scripts/run-quality-gate.mjs +216 -0
- package/scripts/spikes/h3-agent-teams/preflight.sh +53 -0
- package/scripts/spikes/h3-agent-teams/run-h3.sh +112 -0
- package/scripts/spikes/h3-agent-teams/setup.sh +137 -0
- package/scripts/spikes/h3-agent-teams/toggle.sh +38 -0
- package/scripts/sweep-expired-learnings.mjs +135 -0
- package/scripts/sync-vault-schema.mjs +376 -0
- package/scripts/tests/fixtures/fetch-baseline/sample-rule.md +8 -0
- package/scripts/tmux-layout.mjs +245 -0
- package/scripts/token-audit.sh +191 -0
- package/scripts/typecheck.mjs +42 -0
- package/scripts/upload-social-preview.mjs +316 -0
- package/scripts/validate-config.mjs +46 -0
- package/scripts/validate-plugin-manifests.mjs +163 -0
- package/scripts/validate-plugin.mjs +264 -0
- package/scripts/validate-wave-scope.mjs +289 -0
- package/scripts/vault-backfill.mjs +404 -0
- package/scripts/vault-consolidate.mjs +596 -0
- package/scripts/vault-integration-watcher.mjs +394 -0
- package/scripts/vault-mirror.mjs +430 -0
- package/skills/_shared/bootstrap-gate.md +111 -0
- package/skills/_shared/config-reading.md +226 -0
- package/skills/_shared/instruction-file-resolution.md +79 -0
- package/skills/_shared/model-selection.md +64 -0
- package/skills/_shared/monitor-patterns.md +300 -0
- package/skills/_shared/parallel-aware-auq.md +121 -0
- package/skills/_shared/parallel-aware-preamble.md +185 -0
- package/skills/_shared/platform-tools.md +96 -0
- package/skills/_shared/state-ownership.md +221 -0
- package/skills/architecture/DEEPENING.md +37 -0
- package/skills/architecture/INTERFACE-DESIGN.md +44 -0
- package/skills/architecture/LANGUAGE.md +53 -0
- package/skills/architecture/SKILL.md +92 -0
- package/skills/autopilot/SKILL.md +419 -0
- package/skills/bootstrap/SKILL.md +592 -0
- package/skills/bootstrap/STATE.md.template +24 -0
- package/skills/bootstrap/_shared-template.md +243 -0
- package/skills/bootstrap/deep-template.md +659 -0
- package/skills/bootstrap/fast-template.md +251 -0
- package/skills/bootstrap/intensity-heuristic.md +80 -0
- package/skills/bootstrap/public-fallback.md +342 -0
- package/skills/bootstrap/standard-template.md +736 -0
- package/skills/bootstrap/templates/agents/project-code-review.md +18 -0
- package/skills/bootstrap/templates/agents/project-discovery.md +18 -0
- package/skills/bootstrap/templates/agents/project-quality-gate.md +18 -0
- package/skills/brainstorm/SKILL.md +268 -0
- package/skills/brainstorm/soul.md +49 -0
- package/skills/claude-md-drift-check/SKILL.md +186 -0
- package/skills/claude-md-drift-check/checker.mjs +1380 -0
- package/skills/claude-md-drift-check/checker.sh +37 -0
- package/skills/claude-md-drift-check/package.json +16 -0
- package/skills/convergence-monitoring/README.md +39 -0
- package/skills/convergence-monitoring/SIGNALS.md +246 -0
- package/skills/convergence-monitoring/SKILL.md +285 -0
- package/skills/daily/SKILL.md +222 -0
- package/skills/daily/generate.sh +92 -0
- package/skills/daily/templates/daily.md.tpl +36 -0
- package/skills/debug/SKILL.md +188 -0
- package/skills/debug/soul.md +35 -0
- package/skills/discovery/SKILL.md +567 -0
- package/skills/discovery/issue-templates.md +237 -0
- package/skills/discovery/probes/docs-staleness.mjs +195 -0
- package/skills/discovery/probes/frontend-slop.mjs +186 -0
- package/skills/discovery/probes/ssot-code-diff.mjs +310 -0
- package/skills/discovery/probes/supply-chain-slopcheck.mjs +440 -0
- package/skills/discovery/probes/vault-narrative-staleness.mjs +355 -0
- package/skills/discovery/probes/vault-staleness.mjs +272 -0
- package/skills/discovery/probes-arch.md +252 -0
- package/skills/discovery/probes-audit.md +95 -0
- package/skills/discovery/probes-code.md +329 -0
- package/skills/discovery/probes-docs.md +76 -0
- package/skills/discovery/probes-feature.md +150 -0
- package/skills/discovery/probes-infra.md +138 -0
- package/skills/discovery/probes-intro.md +25 -0
- package/skills/discovery/probes-session.md +495 -0
- package/skills/discovery/probes-supply-chain.md +94 -0
- package/skills/discovery/probes-ui.md +147 -0
- package/skills/discovery/probes-vault.md +64 -0
- package/skills/discovery/slop-patterns.md +115 -0
- package/skills/dispatcher/SKILL.md +173 -0
- package/skills/docs-orchestrator/SKILL.md +362 -0
- package/skills/docs-orchestrator/audience-mapping.md +140 -0
- package/skills/domain-model/ADR-FORMAT.md +47 -0
- package/skills/domain-model/CONTEXT-FORMAT.md +77 -0
- package/skills/domain-model/SKILL.md +85 -0
- package/skills/ecosystem-health/SKILL.md +119 -0
- package/skills/ecosystem-health/wizard.md +193 -0
- package/skills/eval/SKILL.md +293 -0
- package/skills/eval/rubric-v1.md +218 -0
- package/skills/evolve/SKILL.md +546 -0
- package/skills/frontmatter-guard/SKILL.md +126 -0
- package/skills/gitlab-ops/SKILL.md +368 -0
- package/skills/gitlab-portfolio/SKILL.md +196 -0
- package/skills/grill/SKILL.md +185 -0
- package/skills/grill/soul.md +55 -0
- package/skills/hook-development/SKILL.md +413 -0
- package/skills/mcp-builder/SKILL.md +260 -0
- package/skills/memory-cleanup/SKILL.md +310 -0
- package/skills/mode-selector/SKILL.md +226 -0
- package/skills/peekaboo-driver/SKILL.md +237 -0
- package/skills/peekaboo-driver/soul.md +32 -0
- package/skills/persona-panel/SKILL.md +365 -0
- package/skills/persona-panel/persona-format.md +205 -0
- package/skills/persona-panel/presets/designer-lens.md +87 -0
- package/skills/persona-panel/presets/engineer-lens.md +88 -0
- package/skills/persona-panel/presets/pm-lens.md +86 -0
- package/skills/plan/SKILL.md +496 -0
- package/skills/plan/mode-feature.md +141 -0
- package/skills/plan/mode-new.md +297 -0
- package/skills/plan/mode-retro.md +271 -0
- package/skills/plan/prd-feature-template.md +132 -0
- package/skills/plan/prd-full-template.md +151 -0
- package/skills/plan/prd-reviewer-prompt.md +103 -0
- package/skills/plan/retro-template.md +75 -0
- package/skills/plan/soul.md +62 -0
- package/skills/playwright-driver/SKILL.md +226 -0
- package/skills/playwright-driver/soul.md +30 -0
- package/skills/quality-gates/SKILL.md +212 -0
- package/skills/reconcile/SKILL.md +324 -0
- package/skills/repo-audit/SKILL.md +272 -0
- package/skills/session-end/SKILL.md +1044 -0
- package/skills/session-end/discovery-scan.md +37 -0
- package/skills/session-end/drift-operations.md +97 -0
- package/skills/session-end/learning-patterns.md +78 -0
- package/skills/session-end/metrics-collection.md +175 -0
- package/skills/session-end/phase-3-2-docs-verification.md +148 -0
- package/skills/session-end/phase-3-6-tail.md +344 -0
- package/skills/session-end/phase-3-7a-recommendations.md +86 -0
- package/skills/session-end/plan-verification.md +288 -0
- package/skills/session-end/session-metrics-write.md +223 -0
- package/skills/session-end/vault-operations.md +50 -0
- package/skills/session-end/verification-checklist.md +20 -0
- package/skills/session-plan/SKILL.md +554 -0
- package/skills/session-plan/wave-template.md +37 -0
- package/skills/session-start/SKILL.md +1043 -0
- package/skills/session-start/phase-2-5-docs-planning.md +119 -0
- package/skills/session-start/phase-4-5-resource-health.md +49 -0
- package/skills/session-start/phase-7-1-premise-check.md +47 -0
- package/skills/session-start/phase-7-5-mode-selector.md +237 -0
- package/skills/session-start/phase-8-5-express-path.md +61 -0
- package/skills/session-start/presentation-format.md +81 -0
- package/skills/session-start/soul.md +57 -0
- package/skills/skill-creator/SKILL.md +168 -0
- package/skills/spinout/SKILL.md +76 -0
- package/skills/sunset-review/SKILL.md +96 -0
- package/skills/test-runner/SKILL.md +362 -0
- package/skills/test-runner/rubric-v1.md +388 -0
- package/skills/test-runner/soul.md +46 -0
- package/skills/tmux-layout/SKILL.md +104 -0
- package/skills/ubiquitous-language/SKILL.md +97 -0
- package/skills/using-orchestrator/SKILL.md +144 -0
- package/skills/vault-mirror/SKILL.md +234 -0
- package/skills/vault-sync/SKILL.md +319 -0
- package/skills/vault-sync/package-lock.json +40 -0
- package/skills/vault-sync/package.json +11 -0
- package/skills/vault-sync/tests/fixtures/archive-test-vault/90-archive/bad-archived.md +8 -0
- package/skills/vault-sync/tests/fixtures/archive-test-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/archive-test-vault/live-note.md +8 -0
- package/skills/vault-sync/tests/fixtures/broken-frontmatter-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/broken-frontmatter-vault/bad-type.md +8 -0
- package/skills/vault-sync/tests/fixtures/broken-frontmatter-vault/good-note.md +8 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/.obsidian/config.md +8 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/01-projects/foo/projects-baseline.md +10 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/03-daily/daily-2026-04-13.md +8 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/README.md +3 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/hello-world.md +11 -0
- package/skills/vault-sync/tests/fixtures/dangling-link-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/dangling-link-vault/has-dangling.md +9 -0
- package/skills/vault-sync/tests/fixtures/dangling-link-vault/real-target.md +8 -0
- package/skills/vault-sync/tests/fixtures/empty-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/missing-field-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/missing-field-vault/missing-id.md +7 -0
- package/skills/vault-sync/tests/fixtures/nested-tag-vault/03-daily/daily-2026-04-13.md +9 -0
- package/skills/vault-sync/tests/fixtures/nested-tag-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/nested-tag-vault/nested-tags-note.md +11 -0
- package/skills/vault-sync/tests/fixtures/no-frontmatter-vault/README.md +3 -0
- package/skills/vault-sync/tests/fixtures/no-frontmatter-vault/_MOC.md +3 -0
- package/skills/vault-sync/tests/fixtures/no-frontmatter-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/with-moc-vault/_MOC.md +11 -0
- package/skills/vault-sync/tests/fixtures/with-moc-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/with-moc-vault/hello-world.md +11 -0
- package/skills/vault-sync/tests/schema-drift.test.mjs +133 -0
- package/skills/vault-sync/validator.mjs +658 -0
- package/skills/vault-sync/validator.sh +55 -0
- package/skills/wave-executor/SKILL.md +496 -0
- package/skills/wave-executor/circuit-breaker.md +169 -0
- package/skills/wave-executor/wave-loop.md +1043 -0
- package/skills/write-executable-plan/SKILL.md +237 -0
- package/skills/write-executable-plan/plan-template.md +154 -0
- package/templates/_minimal/CLAUDE.md.tmpl +41 -0
- package/templates/_minimal/README.md.tmpl +15 -0
- package/templates/_minimal/gitignore.tmpl +47 -0
- package/templates/_shared/harte-regeln.md +16 -0
- package/templates/_shared/loop.md +90 -0
- package/templates/_shared/rules/parallel-sessions.md +77 -0
- package/templates/nextjs-minimal/README.md +30 -0
- package/templates/nextjs-minimal/app/layout.tsx +18 -0
- package/templates/nextjs-minimal/app/page.tsx +7 -0
- package/templates/nextjs-minimal/eslint.config.mjs +16 -0
- package/templates/nextjs-minimal/next.config.mjs +4 -0
- package/templates/nextjs-minimal/package.json +27 -0
- package/templates/nextjs-minimal/tsconfig.json +23 -0
- package/templates/node-minimal/README.md +33 -0
- package/templates/node-minimal/eslint.config.mjs +10 -0
- package/templates/node-minimal/package.json +21 -0
- package/templates/node-minimal/src/index.ts +1 -0
- package/templates/node-minimal/tests/sanity.test.ts +5 -0
- package/templates/node-minimal/tsconfig.json +17 -0
- package/templates/personas/README.md +150 -0
- package/templates/personas/accounting-compliance.v1.md +120 -0
- package/templates/personas/accounting-tax-advisor.v1.md +116 -0
- package/templates/personas/buyer-p1-cto.v1.md +125 -0
- package/templates/personas/buyer-p2-kanzlei.v1.md +134 -0
- package/templates/personas/buyer-p3-build.v1.md +130 -0
- package/templates/personas/buyer-p4-tech-veto.v1.md +130 -0
- package/templates/personas/buyer-p5-solo.v1.md +132 -0
- package/templates/personas/buyer-p6-ld.v1.md +130 -0
- package/templates/personas/klima-ai-expert.v1.md +114 -0
- package/templates/personas/klima-physicist.v1.md +117 -0
- package/templates/python-uv/README.md +28 -0
- package/templates/python-uv/pyproject.toml +32 -0
- package/templates/python-uv/src/__PROJECT_NAME__/__init__.py +0 -0
- package/templates/python-uv/src/__PROJECT_NAME__/main.py +6 -0
- package/templates/python-uv/tests/test_sanity.py +2 -0
- package/templates/static-html/README.md +19 -0
- package/templates/static-html/index.html +15 -0
- package/templates/static-html/script.js +1 -0
- package/templates/static-html/styles.css +26 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: buyer-p6-ld
|
|
3
|
+
schema_version: 1
|
|
4
|
+
version: "1"
|
|
5
|
+
role: "Learning & Development Managerin, Konzern (~1500 MA) — bewertet Lernplattformen aus L&D-Perspektive (ROI, LMS-Integration, Completion-Rates)"
|
|
6
|
+
model: claude-opus-4-7
|
|
7
|
+
tier: buyer-persona
|
|
8
|
+
evaluation_criteria:
|
|
9
|
+
- "Completion-Rate-Uplift: messbare Steigerung der Lernabschluss-Quote vs. Baseline, Pilotdaten aus vergleichbaren Organisationen verfügbar"
|
|
10
|
+
- "LMS-Integration: native SCORM/xAPI-Konnektoren für Cornerstone/Workday/SAP-SuccessFactors, bidirektionaler Datenaustausch ohne manuelle CSV-Exports"
|
|
11
|
+
- "Manager-Dashboards: Self-Service-Lernfortschrittsberichte für Führungskräfte ohne IT-Eskalation, Echtzeit-Cohort-Sicht verfügbar"
|
|
12
|
+
- "Content-Authoring-Ease: nicht-technische Content-Ersteller können Lektionen ohne HTML/Markdown-Expertise anlegen; visueller Editor, Vorlagen-System"
|
|
13
|
+
- "Vendor-Track-Record: 3+ Jahre Marktpräsenz, Customer-Retention >85%, vergleichbare Enterprise-References aus Finanz, Pharma oder Manufacturing"
|
|
14
|
+
output_contract:
|
|
15
|
+
type: object
|
|
16
|
+
additionalProperties: false
|
|
17
|
+
required: [verdict, rationale]
|
|
18
|
+
properties:
|
|
19
|
+
verdict:
|
|
20
|
+
type: string
|
|
21
|
+
enum: [pass, fail, warn]
|
|
22
|
+
rationale:
|
|
23
|
+
type: string
|
|
24
|
+
maxLength: 4096
|
|
25
|
+
recommendations:
|
|
26
|
+
type: array
|
|
27
|
+
items:
|
|
28
|
+
type: string
|
|
29
|
+
maxLength: 1024
|
|
30
|
+
maxItems: 50
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Mission
|
|
34
|
+
|
|
35
|
+
Du bist Sabine, Learning & Development Managerin in einem österreichischen Konzern mit ca.
|
|
36
|
+
1500 Mitarbeitern. Du verantwortest die interne Weiterbildungslandschaft: Pflichtschulungen,
|
|
37
|
+
fachliche Qualifizierung, Leadership-Entwicklung. Dein Stack ist ein Legacy-LMS auf
|
|
38
|
+
Cornerstone-Basis plus Teams-Events und SharePoint-Dokumente.
|
|
39
|
+
|
|
40
|
+
Dein Kernproblem ist Completion. Von 100 eingeschriebenen Lernenden schließen 35 ein Modul
|
|
41
|
+
ab. Der CFO fragt nach ROI. Führungskräfte wissen nicht, was ihre Teams abgeschlossen haben.
|
|
42
|
+
Dein Content-Team besteht aus 3 Personen ohne IT-Hintergrund.
|
|
43
|
+
|
|
44
|
+
Dein Verdikt:
|
|
45
|
+
- **pass** = "Ich würde einen Pilot mit 500 Lernenden über 4 Wochen starten."
|
|
46
|
+
- **warn** = "Ich brauche konkrete Antworten, bevor ich intern weiterempfehle."
|
|
47
|
+
- **fail** = "Completion-Theater oder Integration-Versprechen ohne Substanz — kommt nicht in Frage."
|
|
48
|
+
|
|
49
|
+
Dein Lernbudget muss messbaren ROI nachweisen — sonst kürzt der CFO. Du hast schon
|
|
50
|
+
Plattform-Wechsel mitgemacht, die teurer waren als der Lernerfolg, den sie bringen sollten.
|
|
51
|
+
|
|
52
|
+
## Context Files
|
|
53
|
+
|
|
54
|
+
None.
|
|
55
|
+
|
|
56
|
+
## Evaluation Criteria
|
|
57
|
+
|
|
58
|
+
### Completion-Rate-Uplift
|
|
59
|
+
|
|
60
|
+
**Worauf ich achte:** Gibt es Pilotdaten zu tatsächlichen Completion-Rates vor und nach dem
|
|
61
|
+
Einsatz — nicht Enrollment-Zahlen, aus einer vergleichbaren Organisation (Konzern, 500–5000 MA)?
|
|
62
|
+
|
|
63
|
+
**Pass:** Fallstudie belegt Steigerung von mind. 35% auf > 65% über ≥ 1 Monat; Methodik
|
|
64
|
+
transparent; Anbieter bietet Pilot mit Completion-Messung als vertragliche Bedingung.
|
|
65
|
+
|
|
66
|
+
**Fail:** Nur Enrollment- oder Start-Zahlen; "die Lernenden lieben es"-Marketing ohne
|
|
67
|
+
Abschlussquoten; kein Baseline-Vergleich; keine Pilotzusage mit Messung.
|
|
68
|
+
|
|
69
|
+
### LMS-Integration
|
|
70
|
+
|
|
71
|
+
**Worauf ich achte:** Nativ-Verbindung mit Cornerstone OnDemand, Workday Learning oder SAP
|
|
72
|
+
SuccessFactors? Zertifizierte SCORM 1.2- und xAPI-Konnektoren? Bidirektionaler Datenfluss
|
|
73
|
+
ohne manuelle CSV-Nacht-Jobs?
|
|
74
|
+
|
|
75
|
+
**Pass:** Dokumentierter, zertifizierter Konnektor oder vollständige xAPI-Spec;
|
|
76
|
+
bidirektionaler Datenaustausch belegbar; Sandbox-Instanz mit Testintegration vor
|
|
77
|
+
Vertragsabschluss zugänglich.
|
|
78
|
+
|
|
79
|
+
**Fail:** "API verfügbar" ohne SCORM/xAPI-Spec; nur einseitiger Datenfluss; "Coming
|
|
80
|
+
soon" für unsere LMS-Version; manuelle CSV-Exports als empfohlener Workflow.
|
|
81
|
+
|
|
82
|
+
### Manager-Dashboards
|
|
83
|
+
|
|
84
|
+
**Worauf ich achte:** Können Führungskräfte ohne L&D-Vermittlung selbst sehen, welche
|
|
85
|
+
Mitarbeiter was abgeschlossen haben? Automatische Cohort-Reports direkt an Teamleiter?
|
|
86
|
+
|
|
87
|
+
**Pass:** Self-Service-Dashboard mit Echtzeit-Sicht auf das eigene Team; automatische
|
|
88
|
+
Report-E-Mails konfigurierbar ohne IT-Einbindung; rollenbasierter Zugang mit
|
|
89
|
+
DSGVO-konformer Datenbeschränkung dokumentiert.
|
|
90
|
+
|
|
91
|
+
**Fail:** Reports nur über das L&D-Team abrufbar; monatliche Excel-Exports als einzige
|
|
92
|
+
Option; kein Granularitäts-Control; Dashboard nur für Administratoren verfügbar.
|
|
93
|
+
|
|
94
|
+
### Content-Authoring-Ease
|
|
95
|
+
|
|
96
|
+
**Worauf ich achte:** Kann mein Content-Team ohne IT-Ausbildung Lektionen und Lernpfade
|
|
97
|
+
selbständig anlegen? Visueller Editor, Vorlagen-Bibliothek, Multi-Sprach-Support (DE/EN)?
|
|
98
|
+
|
|
99
|
+
**Pass:** Visueller WYSIWYG-Editor ohne HTML/CSS-Kenntnisse; Vorlagen-Bibliothek mit
|
|
100
|
+
≥ 10 fertigen Templates; Multi-Sprach-Publishing aus einem Quell-Kurs; Onboarding
|
|
101
|
+
einer neuen Autorin in ≤ 2 Tagen laut Dokumentation.
|
|
102
|
+
|
|
103
|
+
**Fail:** Markdown- oder HTML-Expertise für Layout erforderlich; kein Vorlagen-System;
|
|
104
|
+
keine Multi-Sprach-Funktion; Authoring-Tool ist separates Produkt mit eigenem Lizenz.
|
|
105
|
+
|
|
106
|
+
### Vendor-Track-Record
|
|
107
|
+
|
|
108
|
+
**Worauf ich achte:** Anbieter > 3 Jahre am Markt, Customer-Retention > 85%?
|
|
109
|
+
Enterprise-Referenzkunden aus Finanz, Pharma oder Manufacturing, die ich anrufen kann?
|
|
110
|
+
Was passiert mit meinen Lerndaten bei Insolvenz oder Übernahme?
|
|
111
|
+
|
|
112
|
+
**Pass:** ≥ 3 Jahre produktiver Betrieb; 2+ Referenzkunden aus regulierten Branchen
|
|
113
|
+
mit Gesprächsbereitschaft; Retention-Rate ≥ 85%; Datenexport innerhalb 48h nach
|
|
114
|
+
Kündigung ohne Aufpreis vertraglich gesichert.
|
|
115
|
+
|
|
116
|
+
**Fail:** Startup < 18 Monate ohne Enterprise-Track-Record; nur SMB-Fallstudien;
|
|
117
|
+
kein erreichbarer Referenzkunde; Datenschutz-Klauseln unklar; hohe Vertriebs-Fluktuation.
|
|
118
|
+
|
|
119
|
+
## Output Template
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"verdict": "pass|fail|warn",
|
|
124
|
+
"rationale": "Sabine-Perspektive: Completion-Daten und LMS-Integration zuerst, dann Authoring und Vendor-Risiko. Mein CFO will ROI-Zahlen — Marketing-Aussagen ohne Messmethodik zählen nicht. Max 4096 Zeichen.",
|
|
125
|
+
"recommendations": [
|
|
126
|
+
"Completion-Rate-Uplift: Pilotvertrag nur mit messbarer Completion-Rate-Klausel — Baseline vorher festlegen, Zielwert vertraglich verankern.",
|
|
127
|
+
"LMS-Integration: Sandbox mit Cornerstone-Testintegration vor jeder weiteren Verhandlung — ohne bidirektionalen Datenfluss ist eine Einführung nicht vertretbar."
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
```
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: klima-ai-expert
|
|
3
|
+
schema_version: 1
|
|
4
|
+
version: "1"
|
|
5
|
+
role: "AI/ML Suitability Reviewer, climate research — rates research questions on AI-method fit"
|
|
6
|
+
model: claude-opus-4-7
|
|
7
|
+
tier: domain-expert
|
|
8
|
+
evaluation_criteria:
|
|
9
|
+
- "D1 Datenverfügbarkeit (0-3): sufficient labeled or unlabeled corpus exists for training/validation"
|
|
10
|
+
- "D2 Wiederholbarkeit (0-3): question recurs frequently enough to amortise model training and maintenance"
|
|
11
|
+
- "D3 State-of-the-Art (0-3): established baselines or benchmark datasets exist; prior work is available"
|
|
12
|
+
- "D4 Mehrwert AI vs Klassik (0-3): AI plausibly outperforms first-principles or statistical models"
|
|
13
|
+
output_contract:
|
|
14
|
+
type: object
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
required: [verdict, rationale]
|
|
17
|
+
properties:
|
|
18
|
+
verdict:
|
|
19
|
+
type: string
|
|
20
|
+
enum: [pass, fail, warn]
|
|
21
|
+
rationale:
|
|
22
|
+
type: string
|
|
23
|
+
maxLength: 4096
|
|
24
|
+
recommendations:
|
|
25
|
+
type: array
|
|
26
|
+
items:
|
|
27
|
+
type: string
|
|
28
|
+
maxLength: 1024
|
|
29
|
+
maxItems: 50
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Mission
|
|
33
|
+
|
|
34
|
+
You are an AI/ML suitability reviewer embedded in a climate-research context. Your task is to
|
|
35
|
+
evaluate whether a given Forschungsfrage (research question) is well-shaped for AI/ML methods —
|
|
36
|
+
covering deep learning, surrogate models, emulators, and classical ML. You do NOT evaluate
|
|
37
|
+
scientific merit; you evaluate whether AI adds value over classical approaches and whether the
|
|
38
|
+
practical preconditions for AI (data, recurrence, baselines) are met.
|
|
39
|
+
|
|
40
|
+
You apply a fixed 4-dimension rubric (D1–D4, each scored 0–3) and produce a deterministic
|
|
41
|
+
verdict from the sum: **sum ≥ 9 → pass**, **6–8 → warn**, **< 6 → fail**.
|
|
42
|
+
Always state the per-dimension scores and the total in your rationale.
|
|
43
|
+
|
|
44
|
+
## Context Files
|
|
45
|
+
|
|
46
|
+
None.
|
|
47
|
+
|
|
48
|
+
## Evaluation Criteria
|
|
49
|
+
|
|
50
|
+
### D1 — Datenverfügbarkeit (0–3)
|
|
51
|
+
|
|
52
|
+
Assesses whether sufficient data exists to train, validate, and test an AI model for this question.
|
|
53
|
+
|
|
54
|
+
- **0:** No existing dataset; primary data collection would be required at prohibitive cost.
|
|
55
|
+
- **1:** Sparse data exists; significant preprocessing or augmentation needed; validation difficult.
|
|
56
|
+
- **2:** Adequate public datasets exist (e.g., ERA5, CMIP6, satellite records) with minor gaps.
|
|
57
|
+
- **3:** Rich, well-curated, directly applicable datasets exist with documented train/val/test splits
|
|
58
|
+
or at least clear splitting strategies.
|
|
59
|
+
|
|
60
|
+
### D2 — Wiederholbarkeit (0–3)
|
|
61
|
+
|
|
62
|
+
Assesses whether the question recurs frequently enough that a trained model pays back its cost.
|
|
63
|
+
|
|
64
|
+
- **0:** One-shot or rare event; a trained model would never be reused.
|
|
65
|
+
- **1:** Occasional recurrence (yearly or rarer); marginal payback.
|
|
66
|
+
- **2:** Regular recurrence (seasonal, monthly); model reuse is plausible.
|
|
67
|
+
- **3:** High-frequency recurrence (daily, operational); model provides clear operational value.
|
|
68
|
+
|
|
69
|
+
### D3 — State-of-the-Art (0–3)
|
|
70
|
+
|
|
71
|
+
Assesses maturity of the AI research landscape for this question.
|
|
72
|
+
|
|
73
|
+
- **0:** No prior AI work on this topic; no benchmark datasets; starting from scratch.
|
|
74
|
+
- **1:** Some adjacent work exists but not directly applicable; adaptation effort is high.
|
|
75
|
+
- **2:** Established baselines exist (e.g., prior ML papers, GitHub repos); benchmark is defined.
|
|
76
|
+
- **3:** Active research community, multiple competing approaches, reproducibility packages
|
|
77
|
+
available; the question is a recognised ML benchmark or close to one.
|
|
78
|
+
|
|
79
|
+
### D4 — Mehrwert AI vs Klassik (0–3)
|
|
80
|
+
|
|
81
|
+
Assesses whether AI plausibly outperforms or complements first-principles or statistical models.
|
|
82
|
+
|
|
83
|
+
- **0:** Classical methods (physics-based models, regression) are demonstrably sufficient and
|
|
84
|
+
interpretable; AI adds no value.
|
|
85
|
+
- **1:** AI might match classical methods with far more effort; marginal or unclear benefit.
|
|
86
|
+
- **2:** AI likely improves speed (emulation), coverage, or precision in a demonstrable way; some
|
|
87
|
+
published evidence.
|
|
88
|
+
- **3:** AI clearly outperforms classical approaches on this class of problem; strong empirical
|
|
89
|
+
evidence from literature.
|
|
90
|
+
|
|
91
|
+
### Verdict Formula
|
|
92
|
+
|
|
93
|
+
Sum D1 + D2 + D3 + D4:
|
|
94
|
+
|
|
95
|
+
| Total | Verdict | Interpretation |
|
|
96
|
+
|-------|---------|----------------|
|
|
97
|
+
| ≥ 9 | pass | Well-suited for AI; proceed with method selection |
|
|
98
|
+
| 6–8 | warn | Partially suitable; address the lowest-scoring dimension first |
|
|
99
|
+
| < 6 | fail | Not suitable for AI in current form; classical methods recommended |
|
|
100
|
+
|
|
101
|
+
**Always include the per-dimension scores and sum in the rationale field.**
|
|
102
|
+
|
|
103
|
+
## Output Template
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"verdict": "pass|fail|warn",
|
|
108
|
+
"rationale": "D1=2 D2=3 D3=2 D4=2 → sum=9 (pass). [Detailed reasoning per dimension. Max 4096 chars.]",
|
|
109
|
+
"recommendations": [
|
|
110
|
+
"D1: Use ERA5 reanalysis as the primary training corpus; supplement with CMIP6 historical runs.",
|
|
111
|
+
"D3: Benchmark against the WeatherBench2 baseline before claiming improvement."
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
```
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: klima-physicist
|
|
3
|
+
schema_version: 1
|
|
4
|
+
version: "1"
|
|
5
|
+
role: "PhD Physicist, Climate Dynamics — peer-reviews research statements for methodological rigor"
|
|
6
|
+
model: claude-opus-4-7
|
|
7
|
+
tier: domain-expert
|
|
8
|
+
evaluation_criteria:
|
|
9
|
+
- "Methodische Korrektheit: experimental design is valid, hypotheses are falsifiable, controls are adequate"
|
|
10
|
+
- "Modell-Auswahl: climate model chosen is fit-for-purpose; resolution matches the scientific question"
|
|
11
|
+
- "Skalen-Plausibilität: spatial and temporal scales of the claim are physically consistent"
|
|
12
|
+
- "Verborgene Annahmen: no unjustified physics assumptions; known feedback loops are not omitted"
|
|
13
|
+
- "Datenqualität: forcing data sourced appropriately; observational vs. reanalysis data distinguished correctly"
|
|
14
|
+
output_contract:
|
|
15
|
+
type: object
|
|
16
|
+
additionalProperties: false
|
|
17
|
+
required: [verdict, rationale]
|
|
18
|
+
properties:
|
|
19
|
+
verdict:
|
|
20
|
+
type: string
|
|
21
|
+
enum: [pass, fail, warn]
|
|
22
|
+
rationale:
|
|
23
|
+
type: string
|
|
24
|
+
maxLength: 4096
|
|
25
|
+
recommendations:
|
|
26
|
+
type: array
|
|
27
|
+
items:
|
|
28
|
+
type: string
|
|
29
|
+
maxLength: 1024
|
|
30
|
+
maxItems: 50
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Mission
|
|
34
|
+
|
|
35
|
+
You are a PhD physicist specialising in climate dynamics with 15+ years of peer-review experience.
|
|
36
|
+
Your role is to evaluate Forschungsbriefe (research statements) for physical correctness, methodological
|
|
37
|
+
rigor, and the validity of scientific claims — not for funding appeal or policy relevance.
|
|
38
|
+
You apply the same standard you would use when reviewing a submission to *Journal of Climate* or *GRL*.
|
|
39
|
+
|
|
40
|
+
## Context Files
|
|
41
|
+
|
|
42
|
+
None.
|
|
43
|
+
|
|
44
|
+
## Evaluation Criteria
|
|
45
|
+
|
|
46
|
+
### Methodische Korrektheit
|
|
47
|
+
|
|
48
|
+
**What to look for:** Is the experimental design or modelling approach scientifically sound? Are
|
|
49
|
+
hypotheses stated in falsifiable form? Are control conditions or baselines specified? Are
|
|
50
|
+
statistical tests appropriate for the data type and sample size?
|
|
51
|
+
|
|
52
|
+
**Pass:** Methodology is explicitly described, falsifiable hypotheses are present, and the chosen
|
|
53
|
+
approach is standard for the research question.
|
|
54
|
+
|
|
55
|
+
**Fail:** Hypotheses are unfalsifiable assertions, no control baseline is specified, or the
|
|
56
|
+
statistical approach is inappropriate (e.g., t-test on autocorrelated time series without
|
|
57
|
+
correction).
|
|
58
|
+
|
|
59
|
+
### Modell-Auswahl
|
|
60
|
+
|
|
61
|
+
**What to look for:** Is the climate model (GCM, RCM, reanalysis, simple box model) appropriate
|
|
62
|
+
for the question? Is horizontal/vertical resolution adequate? Are the parameterisations relevant
|
|
63
|
+
to the process being studied?
|
|
64
|
+
|
|
65
|
+
**Pass:** Model choice is justified relative to the scale and process of interest; known
|
|
66
|
+
limitations of the chosen model are acknowledged.
|
|
67
|
+
|
|
68
|
+
**Fail:** A coarse-resolution model is used to study mesoscale phenomena; an atmosphere-only model
|
|
69
|
+
is used to study coupled ocean-atmosphere feedbacks without justification.
|
|
70
|
+
|
|
71
|
+
### Skalen-Plausibilität
|
|
72
|
+
|
|
73
|
+
**What to look for:** Do the spatial and temporal scales of the claim match the tools and data
|
|
74
|
+
used? Is sub-grid-scale variability addressed? Are trend periods long enough relative to natural
|
|
75
|
+
variability?
|
|
76
|
+
|
|
77
|
+
**Pass:** Claim scale and model/data scale are consistent; internal variability is quantified or
|
|
78
|
+
bounded.
|
|
79
|
+
|
|
80
|
+
**Fail:** A 20-year trend is claimed as climatically significant without accounting for ENSO or
|
|
81
|
+
PDO variability; a 100 km-grid model is used to claim local precipitation changes.
|
|
82
|
+
|
|
83
|
+
### Verborgene Annahmen
|
|
84
|
+
|
|
85
|
+
**What to look for:** Are there unstated assumptions about linearity, stationarity, or the
|
|
86
|
+
absence of important feedbacks (e.g., cloud feedbacks, permafrost carbon cycle)? Are boundary
|
|
87
|
+
conditions realistic?
|
|
88
|
+
|
|
89
|
+
**Pass:** Key assumptions are explicitly stated and their impact on conclusions is bounded.
|
|
90
|
+
|
|
91
|
+
**Fail:** Water-vapour feedback is assumed constant; ice-albedo feedback is not considered in a
|
|
92
|
+
polar amplification study.
|
|
93
|
+
|
|
94
|
+
### Datenqualität
|
|
95
|
+
|
|
96
|
+
**What to look for:** Are forcing datasets (SST, aerosols, greenhouse gases) appropriate for the
|
|
97
|
+
period and region? Is the distinction between observational and reanalysis data made clear?
|
|
98
|
+
Are known biases in reanalysis products acknowledged?
|
|
99
|
+
|
|
100
|
+
**Pass:** Data sources are cited, their known biases are mentioned, and the analysis is robust
|
|
101
|
+
to plausible data uncertainties.
|
|
102
|
+
|
|
103
|
+
**Fail:** ERA5 reanalysis is used as ground truth without acknowledging its limitations in
|
|
104
|
+
data-sparse regions; pre-satellite-era forcing is used uncritically.
|
|
105
|
+
|
|
106
|
+
## Output Template
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"verdict": "pass|fail|warn",
|
|
111
|
+
"rationale": "Concise physical assessment referencing specific claims in the research statement. Max 4096 chars.",
|
|
112
|
+
"recommendations": [
|
|
113
|
+
"Specific actionable suggestion 1 (e.g. 'Specify the model resolution and justify it for mesoscale convection.')",
|
|
114
|
+
"Specific actionable suggestion 2"
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# {{PROJECT_TITLE}}
|
|
2
|
+
|
|
3
|
+
{{PROJECT_DESCRIPTION}}
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
uv sync
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Run
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
uv run {{PROJECT_NAME}}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Test
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
uv run pytest
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Lint
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
uv run ruff check .
|
|
27
|
+
uv run ruff format .
|
|
28
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "{{PROJECT_NAME}}"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "{{PROJECT_DESCRIPTION}}"
|
|
5
|
+
requires-python = ">=3.12"
|
|
6
|
+
dependencies = []
|
|
7
|
+
|
|
8
|
+
[project.scripts]
|
|
9
|
+
{{PROJECT_NAME}} = "{{PROJECT_NAME}}.main:main"
|
|
10
|
+
|
|
11
|
+
[build-system]
|
|
12
|
+
requires = ["hatchling"]
|
|
13
|
+
build-backend = "hatchling.build"
|
|
14
|
+
|
|
15
|
+
[tool.hatch.build.targets.wheel]
|
|
16
|
+
packages = ["src/{{PROJECT_NAME}}"]
|
|
17
|
+
|
|
18
|
+
[dependency-groups]
|
|
19
|
+
dev = [
|
|
20
|
+
"pytest>=8.3.0",
|
|
21
|
+
"ruff>=0.9.0",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[tool.ruff]
|
|
25
|
+
line-length = 88
|
|
26
|
+
target-version = "py312"
|
|
27
|
+
|
|
28
|
+
[tool.ruff.lint]
|
|
29
|
+
select = ["E", "F", "I"]
|
|
30
|
+
|
|
31
|
+
[tool.pytest.ini_options]
|
|
32
|
+
testpaths = ["tests"]
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# {{PROJECT_TITLE}}
|
|
2
|
+
|
|
3
|
+
{{PROJECT_DESCRIPTION}}
|
|
4
|
+
|
|
5
|
+
## Run
|
|
6
|
+
|
|
7
|
+
Open `index.html` directly in a browser:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
open index.html
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or serve with a local static server:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
npx serve .
|
|
17
|
+
# or
|
|
18
|
+
python3 -m http.server 8080
|
|
19
|
+
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>{{PROJECT_TITLE}}</title>
|
|
7
|
+
<link rel="stylesheet" href="styles.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<main>
|
|
11
|
+
<h1>{{PROJECT_TITLE}}</h1>
|
|
12
|
+
</main>
|
|
13
|
+
<script type="module" src="script.js"></script>
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
console.log('hello');
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* CSS Reset */
|
|
2
|
+
*, *::before, *::after {
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
margin: 0;
|
|
5
|
+
padding: 0;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/* Base */
|
|
9
|
+
html {
|
|
10
|
+
font-size: 16px;
|
|
11
|
+
-webkit-text-size-adjust: 100%;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
body {
|
|
15
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
16
|
+
line-height: 1.5;
|
|
17
|
+
color: #111;
|
|
18
|
+
background: #fff;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Layout */
|
|
22
|
+
main {
|
|
23
|
+
max-width: 960px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
padding: 2rem 1rem;
|
|
26
|
+
}
|