dsh-compound-engineering 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +160 -2
- package/README.zh.md +161 -0
- package/cordis.patch.yml +6 -0
- package/lib/frontmatter.js +167 -0
- package/lib/index.js +46 -0
- package/lib/provider.js +201 -0
- package/package.json +62 -4
- package/skills/CODING_STANDARDS.md +68 -0
- package/skills/ce-babysit-pr/SKILL.md +59 -0
- package/skills/ce-babysit-pr/references/branch-currency.md +22 -0
- package/skills/ce-babysit-pr/references/envelope.md +44 -0
- package/skills/ce-babysit-pr/references/pipeline.md +15 -0
- package/skills/ce-babysit-pr/references/report.md +20 -0
- package/skills/ce-babysit-pr/references/settle.md +37 -0
- package/skills/ce-babysit-pr/references/setup.md +33 -0
- package/skills/ce-babysit-pr/references/stack-commands.md +39 -0
- package/skills/ce-babysit-pr/references/stack.md +43 -0
- package/skills/ce-babysit-pr/references/tick.md +102 -0
- package/skills/ce-babysit-pr/references/watch-loop.md +222 -0
- package/skills/ce-babysit-pr/scripts/pr-snapshot +3656 -0
- package/skills/ce-bakeoff/SKILL.md +48 -0
- package/skills/ce-bakeoff/references/candidates.md +37 -0
- package/skills/ce-bakeoff/references/judging.md +19 -0
- package/skills/ce-bakeoff/references/output.md +11 -0
- package/skills/ce-bakeoff/references/verification.md +15 -0
- package/skills/ce-brainstorm/SKILL.md +69 -0
- package/skills/ce-brainstorm/references/agents/slack-researcher.md +127 -0
- package/skills/ce-brainstorm/references/approaches.md +57 -0
- package/skills/ce-brainstorm/references/bakeoff.md +9 -0
- package/skills/ce-brainstorm/references/blindspot-pass.md +70 -0
- package/skills/ce-brainstorm/references/brainstorm-sections.md +458 -0
- package/skills/ce-brainstorm/references/dialogue.md +89 -0
- package/skills/ce-brainstorm/references/handoff.md +187 -0
- package/skills/ce-brainstorm/references/html-rendering.md +638 -0
- package/skills/ce-brainstorm/references/interaction-rules.md +33 -0
- package/skills/ce-brainstorm/references/markdown-rendering.md +242 -0
- package/skills/ce-brainstorm/references/model-tiers.md +13 -0
- package/skills/ce-brainstorm/references/output-mode.md +26 -0
- package/skills/ce-brainstorm/references/phase-0.md +104 -0
- package/skills/ce-brainstorm/references/plan-write.md +32 -0
- package/skills/ce-brainstorm/references/product-pressure-test.md +42 -0
- package/skills/ce-brainstorm/references/reasoning-elevation.md +124 -0
- package/skills/ce-brainstorm/references/settled-decisions.md +45 -0
- package/skills/ce-brainstorm/references/synthesis-summary.md +149 -0
- package/skills/ce-brainstorm/references/universal-brainstorming.md +72 -0
- package/skills/ce-brainstorm/references/verdict-routing.md +26 -0
- package/skills/ce-brainstorm/references/visual-probes.md +164 -0
- package/skills/ce-brainstorm/scripts/elevation-dispatch.sh +288 -0
- package/skills/ce-brainstorm/scripts/light-webserver.js +1275 -0
- package/skills/ce-brainstorm/scripts/packs-resolve.py +737 -0
- package/skills/ce-brainstorm/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-code-review/SKILL.md +40 -0
- package/skills/ce-code-review/references/action-class-rubric.md +67 -0
- package/skills/ce-code-review/references/cross-model-recovery.md +38 -0
- package/skills/ce-code-review/references/cross-model-review.md +191 -0
- package/skills/ce-code-review/references/depth-paths.md +32 -0
- package/skills/ce-code-review/references/diff-scope.md +59 -0
- package/skills/ce-code-review/references/dispatch-reviewers.md +135 -0
- package/skills/ce-code-review/references/findings-schema.json +125 -0
- package/skills/ce-code-review/references/finish-input.md +118 -0
- package/skills/ce-code-review/references/finish-review.md +202 -0
- package/skills/ce-code-review/references/intent-and-plan.md +73 -0
- package/skills/ce-code-review/references/modes-and-output.md +156 -0
- package/skills/ce-code-review/references/persona-catalog.md +66 -0
- package/skills/ce-code-review/references/personas/adversarial-reviewer.md +111 -0
- package/skills/ce-code-review/references/personas/agent-native-reviewer.md +173 -0
- package/skills/ce-code-review/references/personas/api-contract-reviewer.md +44 -0
- package/skills/ce-code-review/references/personas/correctness-reviewer.md +48 -0
- package/skills/ce-code-review/references/personas/data-migration-reviewer.md +111 -0
- package/skills/ce-code-review/references/personas/deployment-verification-agent.md +157 -0
- package/skills/ce-code-review/references/personas/julik-frontend-races-reviewer.md +45 -0
- package/skills/ce-code-review/references/personas/learnings-researcher.md +260 -0
- package/skills/ce-code-review/references/personas/maintainability-reviewer.md +85 -0
- package/skills/ce-code-review/references/personas/performance-reviewer.md +45 -0
- package/skills/ce-code-review/references/personas/previous-comments-reviewer.md +59 -0
- package/skills/ce-code-review/references/personas/project-standards-reviewer.md +77 -0
- package/skills/ce-code-review/references/personas/reliability-reviewer.md +49 -0
- package/skills/ce-code-review/references/personas/security-reviewer.md +50 -0
- package/skills/ce-code-review/references/personas/swift-ios-reviewer.md +99 -0
- package/skills/ce-code-review/references/personas/testing-reviewer.md +51 -0
- package/skills/ce-code-review/references/review-output-template.md +172 -0
- package/skills/ce-code-review/references/scope.md +176 -0
- package/skills/ce-code-review/references/select-and-route.md +93 -0
- package/skills/ce-code-review/references/subagent-template.md +206 -0
- package/skills/ce-code-review/references/validator-batch-template.md +67 -0
- package/skills/ce-code-review/scripts/cross-model-adversarial-review.sh +1275 -0
- package/skills/ce-code-review/scripts/findings-mechanics.py +274 -0
- package/skills/ce-code-review/scripts/packs-resolve.py +737 -0
- package/skills/ce-code-review/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-code-review/scripts/review-scope.py +419 -0
- package/skills/ce-code-review/scripts/run-log.py +280 -0
- package/skills/ce-commit/SKILL.md +60 -0
- package/skills/ce-commit-push-pr/SKILL.md +69 -0
- package/skills/ce-commit-push-pr/references/apply-and-handoff.md +79 -0
- package/skills/ce-commit-push-pr/references/branch-creation.md +47 -0
- package/skills/ce-commit-push-pr/references/commit-and-push.md +26 -0
- package/skills/ce-commit-push-pr/references/compose.md +29 -0
- package/skills/ce-commit-push-pr/references/context.md +42 -0
- package/skills/ce-commit-push-pr/references/gh-stack-cli.md +83 -0
- package/skills/ce-commit-push-pr/references/pr-description-writing.md +208 -0
- package/skills/ce-commit-push-pr/references/stack-submit.md +81 -0
- package/skills/ce-compound/SKILL.md +79 -0
- package/skills/ce-compound/assets/resolution-template.md +96 -0
- package/skills/ce-compound/references/agents/best-practices-researcher.md +115 -0
- package/skills/ce-compound/references/agents/data-integrity-guardian.md +68 -0
- package/skills/ce-compound/references/agents/framework-docs-researcher.md +93 -0
- package/skills/ce-compound/references/agents/pattern-recognition-specialist.md +55 -0
- package/skills/ce-compound/references/agents/performance-oracle.md +108 -0
- package/skills/ce-compound/references/agents/security-sentinel.md +91 -0
- package/skills/ce-compound/references/agents/session-historian.md +82 -0
- package/skills/ce-compound/references/assembly.md +127 -0
- package/skills/ce-compound/references/concepts-vocabulary.md +98 -0
- package/skills/ce-compound/references/enhancement.md +42 -0
- package/skills/ce-compound/references/grounding-validation.md +89 -0
- package/skills/ce-compound/references/lightweight.md +56 -0
- package/skills/ce-compound/references/modes.md +13 -0
- package/skills/ce-compound/references/refresh-and-discoverability.md +96 -0
- package/skills/ce-compound/references/report.md +115 -0
- package/skills/ce-compound/references/research.md +144 -0
- package/skills/ce-compound/references/schema.yaml +236 -0
- package/skills/ce-compound/references/session-history.md +73 -0
- package/skills/ce-compound/references/yaml-schema.md +130 -0
- package/skills/ce-compound/scripts/packs-resolve.py +737 -0
- package/skills/ce-compound/scripts/session-history/__pycache__/dsh_session.cpython-314.pyc +0 -0
- package/skills/ce-compound/scripts/session-history/discover-sessions.sh +290 -0
- package/skills/ce-compound/scripts/session-history/discover_dsh.py +123 -0
- package/skills/ce-compound/scripts/session-history/dsh_session.py +225 -0
- package/skills/ce-compound/scripts/session-history/extract-errors.py +178 -0
- package/skills/ce-compound/scripts/session-history/extract-metadata.py +301 -0
- package/skills/ce-compound/scripts/session-history/extract-skeleton.py +346 -0
- package/skills/ce-compound/scripts/validate-doc-claims.py +497 -0
- package/skills/ce-compound/scripts/validate-frontmatter.py +137 -0
- package/skills/ce-compound-refresh/SKILL.md +88 -0
- package/skills/ce-compound-refresh/assets/resolution-template.md +96 -0
- package/skills/ce-compound-refresh/references/classify.md +42 -0
- package/skills/ce-compound-refresh/references/commit.md +7 -0
- package/skills/ce-compound-refresh/references/concepts-vocabulary.md +116 -0
- package/skills/ce-compound-refresh/references/discoverability.md +15 -0
- package/skills/ce-compound-refresh/references/investigate.md +23 -0
- package/skills/ce-compound-refresh/references/modes.md +27 -0
- package/skills/ce-compound-refresh/references/per-action-flows.md +142 -0
- package/skills/ce-compound-refresh/references/report.md +23 -0
- package/skills/ce-compound-refresh/references/schema.yaml +236 -0
- package/skills/ce-compound-refresh/references/scope.md +18 -0
- package/skills/ce-compound-refresh/references/worth-audit.md +35 -0
- package/skills/ce-compound-refresh/references/yaml-schema.md +130 -0
- package/skills/ce-compound-refresh/scripts/validate-doc-claims.py +497 -0
- package/skills/ce-compound-refresh/scripts/validate-frontmatter.py +137 -0
- package/skills/ce-debug/SKILL.md +122 -0
- package/skills/ce-debug/references/anti-patterns.md +91 -0
- package/skills/ce-debug/references/defense-in-depth.md +39 -0
- package/skills/ce-debug/references/fix.md +21 -0
- package/skills/ce-debug/references/investigate.md +114 -0
- package/skills/ce-debug/references/investigation-techniques.md +384 -0
- package/skills/ce-debug/references/pipeline-mode.md +78 -0
- package/skills/ce-debug/references/post-fix-handoff.md +60 -0
- package/skills/ce-debug/references/return-to-caller.md +57 -0
- package/skills/ce-doc-review/SKILL.md +75 -0
- package/skills/ce-doc-review/references/bulk-preview.md +146 -0
- package/skills/ce-doc-review/references/cross-model-review.md +207 -0
- package/skills/ce-doc-review/references/decision-primer.md +47 -0
- package/skills/ce-doc-review/references/dispatch.md +56 -0
- package/skills/ce-doc-review/references/document-intake.md +44 -0
- package/skills/ce-doc-review/references/findings-schema.json +85 -0
- package/skills/ce-doc-review/references/modes.md +20 -0
- package/skills/ce-doc-review/references/open-questions-defer.md +158 -0
- package/skills/ce-doc-review/references/persona-selection.md +41 -0
- package/skills/ce-doc-review/references/personas/adversarial-document-reviewer.md +109 -0
- package/skills/ce-doc-review/references/personas/coherence-reviewer.md +69 -0
- package/skills/ce-doc-review/references/personas/design-lens-reviewer.md +48 -0
- package/skills/ce-doc-review/references/personas/feasibility-reviewer.md +50 -0
- package/skills/ce-doc-review/references/personas/product-lens-reviewer.md +85 -0
- package/skills/ce-doc-review/references/personas/scope-guardian-reviewer.md +83 -0
- package/skills/ce-doc-review/references/personas/security-lens-reviewer.md +41 -0
- package/skills/ce-doc-review/references/personas/whole-doc-reviewer.md +25 -0
- package/skills/ce-doc-review/references/rendering-floor.md +175 -0
- package/skills/ce-doc-review/references/review-output-template.md +123 -0
- package/skills/ce-doc-review/references/subagent-template.md +188 -0
- package/skills/ce-doc-review/references/synthesis-and-presentation.md +350 -0
- package/skills/ce-doc-review/references/walkthrough.md +347 -0
- package/skills/ce-doc-review/scripts/cross-model-doc-review.sh +1270 -0
- package/skills/ce-doc-review/scripts/packs-resolve.py +737 -0
- package/skills/ce-doc-review/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-dogfood/SKILL.md +66 -0
- package/skills/ce-dogfood/agents/openai.yaml +2 -0
- package/skills/ce-dogfood/references/dogfood-report-template.md +97 -0
- package/skills/ce-dogfood/references/phases.md +167 -0
- package/skills/ce-dogfood/references/test-matrix-taxonomy.md +62 -0
- package/skills/ce-dogfood/scripts/packs-resolve.py +737 -0
- package/skills/ce-explain/SKILL.md +81 -0
- package/skills/ce-explain/references/agents/behavior-trace-scout.md +19 -0
- package/skills/ce-explain/references/agents/work-recap-scout.md +23 -0
- package/skills/ce-explain/references/check-in.md +18 -0
- package/skills/ce-explain/references/destinations.md +35 -0
- package/skills/ce-explain/references/explainer-html.md +29 -0
- package/skills/ce-explain/references/explainer-markdown.md +24 -0
- package/skills/ce-explain/references/intake.md +50 -0
- package/skills/ce-explain/references/orchestration.md +46 -0
- package/skills/ce-handoff/SKILL.md +54 -0
- package/skills/ce-handoff/references/create.md +88 -0
- package/skills/ce-handoff/references/resume.md +46 -0
- package/skills/ce-ideate/SKILL.md +75 -0
- package/skills/ce-ideate/references/agents/issue-intelligence-analyst.md +166 -0
- package/skills/ce-ideate/references/agents/learnings-researcher.md +247 -0
- package/skills/ce-ideate/references/agents/slack-researcher.md +127 -0
- package/skills/ce-ideate/references/agents/web-researcher.md +121 -0
- package/skills/ce-ideate/references/decomposition.md +39 -0
- package/skills/ce-ideate/references/divergent-ideation.md +112 -0
- package/skills/ce-ideate/references/grounding.md +138 -0
- package/skills/ce-ideate/references/html-rendering.md +638 -0
- package/skills/ce-ideate/references/ideation-sections.md +191 -0
- package/skills/ce-ideate/references/issue-intelligence.md +44 -0
- package/skills/ce-ideate/references/markdown-rendering.md +242 -0
- package/skills/ce-ideate/references/output-mode.md +34 -0
- package/skills/ce-ideate/references/post-ideation-workflow.md +169 -0
- package/skills/ce-ideate/references/scope-gates.md +148 -0
- package/skills/ce-ideate/references/universal-ideation.md +119 -0
- package/skills/ce-ideate/references/user-research-artifacts.md +28 -0
- package/skills/ce-ideate/references/web-research-cache.md +56 -0
- package/skills/ce-noslop/SKILL.md +45 -0
- package/skills/ce-noslop/references/patterns.md +61 -0
- package/skills/ce-noslop/references/terminology.md +3 -0
- package/skills/ce-optimize/SKILL.md +64 -0
- package/skills/ce-optimize/references/agents/learnings-researcher.md +247 -0
- package/skills/ce-optimize/references/agents/repo-research-analyst.md +258 -0
- package/skills/ce-optimize/references/example-expensive-benchmark-spec.yaml +88 -0
- package/skills/ce-optimize/references/example-hard-spec.yaml +64 -0
- package/skills/ce-optimize/references/example-judge-spec.yaml +83 -0
- package/skills/ce-optimize/references/example-text-target-spec.yaml +80 -0
- package/skills/ce-optimize/references/experiment-log-schema.yaml +563 -0
- package/skills/ce-optimize/references/experiment-prompt-template.md +143 -0
- package/skills/ce-optimize/references/judge-prompt-template.md +117 -0
- package/skills/ce-optimize/references/loop.md +286 -0
- package/skills/ce-optimize/references/measurement.md +168 -0
- package/skills/ce-optimize/references/optimize-spec-schema.yaml +570 -0
- package/skills/ce-optimize/references/persistence.md +93 -0
- package/skills/ce-optimize/references/spec.md +107 -0
- package/skills/ce-optimize/references/text-targets.md +51 -0
- package/skills/ce-optimize/references/usage-guide.md +147 -0
- package/skills/ce-optimize/references/wrap-up.md +54 -0
- package/skills/ce-optimize/scripts/decide.mjs +676 -0
- package/skills/ce-optimize/scripts/experiment-worktree.sh +330 -0
- package/skills/ce-optimize/scripts/measure.sh +140 -0
- package/skills/ce-optimize/scripts/parallel-probe.sh +134 -0
- package/skills/ce-plan/SKILL.md +60 -0
- package/skills/ce-plan/references/agents/agent-native-planning-strategist.md +66 -0
- package/skills/ce-plan/references/agents/architecture-strategist.md +46 -0
- package/skills/ce-plan/references/agents/best-practices-researcher.md +118 -0
- package/skills/ce-plan/references/agents/data-integrity-guardian.md +68 -0
- package/skills/ce-plan/references/agents/framework-docs-researcher.md +97 -0
- package/skills/ce-plan/references/agents/git-history-analyzer.md +40 -0
- package/skills/ce-plan/references/agents/learnings-researcher.md +268 -0
- package/skills/ce-plan/references/agents/pattern-recognition-specialist.md +55 -0
- package/skills/ce-plan/references/agents/performance-oracle.md +108 -0
- package/skills/ce-plan/references/agents/repo-research-analyst.md +262 -0
- package/skills/ce-plan/references/agents/security-sentinel.md +91 -0
- package/skills/ce-plan/references/agents/slack-researcher.md +131 -0
- package/skills/ce-plan/references/agents/spec-flow-analyzer.md +84 -0
- package/skills/ce-plan/references/agents/web-researcher.md +125 -0
- package/skills/ce-plan/references/approach-altitude.md +55 -0
- package/skills/ce-plan/references/bakeoff.md +9 -0
- package/skills/ce-plan/references/deepening-workflow.md +263 -0
- package/skills/ce-plan/references/final-review.md +134 -0
- package/skills/ce-plan/references/html-rendering.md +638 -0
- package/skills/ce-plan/references/intake.md +158 -0
- package/skills/ce-plan/references/markdown-rendering.md +242 -0
- package/skills/ce-plan/references/output-contracts.md +29 -0
- package/skills/ce-plan/references/output-mode.md +45 -0
- package/skills/ce-plan/references/plan-handoff.md +116 -0
- package/skills/ce-plan/references/plan-sections.md +489 -0
- package/skills/ce-plan/references/reasoning-elevation.md +124 -0
- package/skills/ce-plan/references/research.md +211 -0
- package/skills/ce-plan/references/resume.md +61 -0
- package/skills/ce-plan/references/settled-decisions.md +45 -0
- package/skills/ce-plan/references/structure.md +207 -0
- package/skills/ce-plan/references/synthesis-summary.md +260 -0
- package/skills/ce-plan/references/universal-planning.md +170 -0
- package/skills/ce-plan/scripts/elevation-dispatch.sh +288 -0
- package/skills/ce-plan/scripts/packs-resolve.py +737 -0
- package/skills/ce-plan/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-polish/SKILL.md +22 -0
- package/skills/ce-polish/agents/openai.yaml +2 -0
- package/skills/ce-polish/references/dev-server-astro.md +58 -0
- package/skills/ce-polish/references/dev-server-detection.md +40 -0
- package/skills/ce-polish/references/dev-server-next.md +61 -0
- package/skills/ce-polish/references/dev-server-nuxt.md +58 -0
- package/skills/ce-polish/references/dev-server-procfile.md +59 -0
- package/skills/ce-polish/references/dev-server-rails.md +50 -0
- package/skills/ce-polish/references/dev-server-remix.md +58 -0
- package/skills/ce-polish/references/dev-server-sveltekit.md +58 -0
- package/skills/ce-polish/references/dev-server-vite.md +48 -0
- package/skills/ce-polish/references/install-riffrec.md +35 -0
- package/skills/ce-polish/references/launch-json-schema.md +177 -0
- package/skills/ce-polish/references/live-loop.md +98 -0
- package/skills/ce-polish/references/live-remote.md +35 -0
- package/skills/ce-polish/references/live-start.md +93 -0
- package/skills/ce-polish/references/live-stream-contract.md +253 -0
- package/skills/ce-polish/references/run.md +67 -0
- package/skills/ce-polish/scripts/detect-project-type.sh +277 -0
- package/skills/ce-polish/scripts/detect-riffrec.sh +225 -0
- package/skills/ce-polish/scripts/live-endpoint.js +2841 -0
- package/skills/ce-polish/scripts/read-launch-json.sh +117 -0
- package/skills/ce-polish/scripts/resolve-package-manager.sh +95 -0
- package/skills/ce-polish/scripts/resolve-port.sh +307 -0
- package/skills/ce-pov/SKILL.md +64 -0
- package/skills/ce-pov/references/agents/external-evidence-researcher.md +26 -0
- package/skills/ce-pov/references/agents/pov-peer.md +43 -0
- package/skills/ce-pov/references/agents/precedent-activity-scout.md +21 -0
- package/skills/ce-pov/references/agents/project-grounding-scout.md +32 -0
- package/skills/ce-pov/references/boundaries.md +36 -0
- package/skills/ce-pov/references/cross-model-panel.md +596 -0
- package/skills/ce-pov/references/followup.md +9 -0
- package/skills/ce-pov/references/grounding.md +47 -0
- package/skills/ce-pov/references/intake.md +61 -0
- package/skills/ce-pov/references/invocation.md +47 -0
- package/skills/ce-pov/references/method.md +68 -0
- package/skills/ce-pov/references/pov-schema.json +56 -0
- package/skills/ce-pov/references/report.md +7 -0
- package/skills/ce-pov/scripts/cross-model-pov.sh +1110 -0
- package/skills/ce-pov/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-product-pulse/SKILL.md +81 -0
- package/skills/ce-product-pulse/agents/openai.yaml +2 -0
- package/skills/ce-product-pulse/references/config.md +20 -0
- package/skills/ce-product-pulse/references/interview.md +260 -0
- package/skills/ce-product-pulse/references/report-template.md +89 -0
- package/skills/ce-product-pulse/references/run.md +46 -0
- package/skills/ce-product-pulse/references/setup.md +43 -0
- package/skills/ce-promote/SKILL.md +90 -0
- package/skills/ce-promote/agents/openai.yaml +2 -0
- package/skills/ce-promote/references/spiral-cli.md +149 -0
- package/skills/ce-proof/SKILL.md +65 -0
- package/skills/ce-proof/references/api.md +176 -0
- package/skills/ce-proof/references/workflows.md +124 -0
- package/skills/ce-prototype/SKILL.md +59 -0
- package/skills/ce-prototype/assets/annotate.css +206 -0
- package/skills/ce-prototype/assets/annotate.js +837 -0
- package/skills/ce-prototype/references/annotation-loop.md +32 -0
- package/skills/ce-prototype/references/build.md +39 -0
- package/skills/ce-prototype/references/craft-floor.md +43 -0
- package/skills/ce-prototype/references/preview.md +118 -0
- package/skills/ce-prototype/references/scoping.md +38 -0
- package/skills/ce-prototype/references/write-back.md +37 -0
- package/skills/ce-prototype/scripts/light-webserver.js +1275 -0
- package/skills/ce-resolve-pr-feedback/SKILL.md +60 -0
- package/skills/ce-resolve-pr-feedback/references/agents/pr-comment-resolver.md +59 -0
- package/skills/ce-resolve-pr-feedback/references/evaluation-rubric.md +141 -0
- package/skills/ce-resolve-pr-feedback/references/full-mode.md +336 -0
- package/skills/ce-resolve-pr-feedback/references/pipeline-mode.md +23 -0
- package/skills/ce-resolve-pr-feedback/references/resume.md +60 -0
- package/skills/ce-resolve-pr-feedback/references/return-to-caller.md +111 -0
- package/skills/ce-resolve-pr-feedback/references/targeted-mode.md +48 -0
- package/skills/ce-resolve-pr-feedback/scripts/get-pr-comments +176 -0
- package/skills/ce-resolve-pr-feedback/scripts/get-thread-for-comment +84 -0
- package/skills/ce-resolve-pr-feedback/scripts/pending-feedback.py +287 -0
- package/skills/ce-resolve-pr-feedback/scripts/reply-to-pr-thread +57 -0
- package/skills/ce-resolve-pr-feedback/scripts/resolve-pr-thread +23 -0
- package/skills/ce-retune/SKILL.md +42 -0
- package/skills/ce-retune/agents/openai.yaml +2 -0
- package/skills/ce-retune/references/baseline-mining.md +122 -0
- package/skills/ce-retune/references/corpus-audit.md +128 -0
- package/skills/ce-retune/references/cut-passes.md +129 -0
- package/skills/ce-retune/references/halt-taxonomy.md +123 -0
- package/skills/ce-retune/references/noise-floor.md +131 -0
- package/skills/ce-retune/references/workflow-shapes.md +73 -0
- package/skills/ce-riffrec-feedback-analysis/SKILL.md +33 -0
- package/skills/ce-riffrec-feedback-analysis/references/analyzer.md +18 -0
- package/skills/ce-riffrec-feedback-analysis/references/compound-engineering-feedback-format.md +116 -0
- package/skills/ce-riffrec-feedback-analysis/references/extensive-analysis.md +98 -0
- package/skills/ce-riffrec-feedback-analysis/references/install-riffrec.md +27 -0
- package/skills/ce-riffrec-feedback-analysis/references/quick-bug-report.md +38 -0
- package/skills/ce-riffrec-feedback-analysis/scripts/analyze_riffrec_zip.py +1306 -0
- package/skills/ce-setup/SKILL.md +103 -0
- package/skills/ce-setup/agents/openai.yaml +2 -0
- package/skills/ce-setup/assets/compounding-directive.md +11 -0
- package/skills/ce-setup/assets/noslop-directive.md +7 -0
- package/skills/ce-setup/assets/pack-rule-template.md +11 -0
- package/skills/ce-setup/references/acpx-cache-warm.md +14 -0
- package/skills/ce-setup/references/config-template.yaml +210 -0
- package/skills/ce-setup/references/legacy-codex-tool-map.md +15 -0
- package/skills/ce-setup/references/pack-scaffold.md +45 -0
- package/skills/ce-setup/references/repo-fixes.md +121 -0
- package/skills/ce-setup/scripts/check-health +929 -0
- package/skills/ce-setup/scripts/packs-resolve.py +737 -0
- package/skills/ce-simplify-code/SKILL.md +76 -0
- package/skills/ce-simplify-code/references/personas/code-quality-reviewer.md +17 -0
- package/skills/ce-simplify-code/references/personas/code-reuse-reviewer.md +7 -0
- package/skills/ce-simplify-code/references/personas/comment-reviewer.md +24 -0
- package/skills/ce-simplify-code/references/personas/efficiency-reviewer.md +11 -0
- package/skills/ce-simplify-code/references/personas/test-value-reviewer.md +23 -0
- package/skills/ce-simplify-code/references/reviewer-dispatch.md +11 -0
- package/skills/ce-simplify-code/references/standalone-report.md +25 -0
- package/skills/ce-strategy/SKILL.md +61 -0
- package/skills/ce-strategy/references/grounding.md +22 -0
- package/skills/ce-strategy/references/interview.md +179 -0
- package/skills/ce-strategy/references/strategy-template.md +94 -0
- package/skills/ce-strategy/references/update-run.md +33 -0
- package/skills/ce-sweep/SKILL.md +93 -0
- package/skills/ce-sweep/agents/openai.yaml +2 -0
- package/skills/ce-sweep/references/agents/media-analyzer.md +54 -0
- package/skills/ce-sweep/references/interview.md +208 -0
- package/skills/ce-sweep/references/model-tiers.md +13 -0
- package/skills/ce-sweep/references/plan-template.md +62 -0
- package/skills/ce-sweep/references/run.md +126 -0
- package/skills/ce-sweep/references/sources/email.md +57 -0
- package/skills/ce-sweep/references/sources/github-issues.md +59 -0
- package/skills/ce-sweep/references/sources/slack.md +61 -0
- package/skills/ce-sweep/references/state-schema.md +157 -0
- package/skills/ce-sweep/references/subagent-template.md +60 -0
- package/skills/ce-sweep/scripts/analyze_riffrec_zip.py +1306 -0
- package/skills/ce-sweep/scripts/sweep-state.py +793 -0
- package/skills/ce-test-browser/SKILL.md +50 -0
- package/skills/ce-test-browser/references/agent-browser-driver.md +47 -0
- package/skills/ce-test-browser/references/pipeline-orchestration.md +45 -0
- package/skills/ce-test-browser/references/route-and-report.md +129 -0
- package/skills/ce-test-browser/scripts/resolve-port.sh +41 -0
- package/skills/ce-test-xcode/SKILL.md +26 -0
- package/skills/ce-test-xcode/agents/openai.yaml +2 -0
- package/skills/ce-test-xcode/references/setup-and-build.md +32 -0
- package/skills/ce-test-xcode/references/test-and-report.md +64 -0
- package/skills/ce-work/SKILL.md +62 -0
- package/skills/ce-work/references/agents/figma-design-sync.md +27 -0
- package/skills/ce-work/references/agents/implementation-worker.md +17 -0
- package/skills/ce-work/references/cross-model-execution.md +191 -0
- package/skills/ce-work/references/execution-engines.md +64 -0
- package/skills/ce-work/references/execution-strategy.md +73 -0
- package/skills/ce-work/references/implementation-loop.md +107 -0
- package/skills/ce-work/references/implementation-result-schema.json +52 -0
- package/skills/ce-work/references/input-triage.md +50 -0
- package/skills/ce-work/references/non-code-execution.md +23 -0
- package/skills/ce-work/references/return-to-caller.md +33 -0
- package/skills/ce-work/references/review-findings-followup.md +82 -0
- package/skills/ce-work/references/shipping-workflow.md +89 -0
- package/skills/ce-work/references/tracker-defer.md +150 -0
- package/skills/ce-work/references/work-intake.md +51 -0
- package/skills/ce-work/references/workspace-setup.md +27 -0
- package/skills/ce-work/scripts/__pycache__/unit_workspace_jobs.cpython-314.pyc +0 -0
- package/skills/ce-work/scripts/__pycache__/unit_workspace_state.cpython-314.pyc +0 -0
- package/skills/ce-work/scripts/cross-model-work.sh +1385 -0
- package/skills/ce-work/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-work/scripts/unit-workspace.py +215 -0
- package/skills/ce-work/scripts/unit_workspace_ignored.py +93 -0
- package/skills/ce-work/scripts/unit_workspace_integration.py +677 -0
- package/skills/ce-work/scripts/unit_workspace_jobs.py +1216 -0
- package/skills/ce-work/scripts/unit_workspace_lifecycle.py +981 -0
- package/skills/ce-work/scripts/unit_workspace_state.py +1379 -0
- package/skills/ce-work/scripts/unit_workspace_transaction.py +612 -0
- package/skills/ce-worktree/SKILL.md +54 -0
- package/skills/lfg/SKILL.md +59 -0
- package/skills/lfg/references/debug-return.md +25 -0
- package/skills/lfg/references/intake.md +30 -0
- package/skills/lfg/references/next-work-handoff.md +96 -0
- package/skills/lfg/references/plan-brief.md +36 -0
- package/skills/lfg/references/review-followup.md +78 -0
- package/skills/lfg/references/shipping.md +65 -0
- package/skills/lfg/references/stage-routing.md +49 -0
- package/skills/lfg/references/task-visibility.md +11 -0
- package/skills/lfg/references/tracker-defer.md +150 -0
- package/skills/lfg/references/work-return.md +27 -0
- package/skills/wtf/SKILL.md +33 -0
- package/skills/wtf/agents/openai.yaml +2 -0
|
@@ -0,0 +1,596 @@
|
|
|
1
|
+
# Cross-Model POV Panel
|
|
2
|
+
|
|
3
|
+
This protocol obtains independent peer POVs, reconciles material disagreement,
|
|
4
|
+
and returns one ce-pov decision. ce-pov remains the decision-maker: peers are
|
|
5
|
+
cross-checks, never substitutes or votes. The panel is read-only and
|
|
6
|
+
non-blocking; every branch ends in a panel POV, a solo POV with an availability
|
|
7
|
+
note, or the ordinary POV's explicit blocked-on-missing-context result.
|
|
8
|
+
|
|
9
|
+
## 1. Resolve the subject, host, and participants
|
|
10
|
+
|
|
11
|
+
Resolve conversational shorthand before spending: "the approach," "these
|
|
12
|
+
options," and "the three options presented" mean the single unambiguous
|
|
13
|
+
subject identified by the active conversation. Return missing context to the caller when several possible subjects would
|
|
14
|
+
materially change the POV and context cannot distinguish them.
|
|
15
|
+
|
|
16
|
+
Keep four identities separate for the host and every peer:
|
|
17
|
+
|
|
18
|
+
- **target** — the user-facing choice (`codex`, `claude`, `grok`, `cursor`,
|
|
19
|
+
`composer`, `opencode`, or `antigravity`);
|
|
20
|
+
- **harness/intermediary route** — the CLI or intermediary that runs it;
|
|
21
|
+
- **requested model** — an explicit model or the route's declared default; and
|
|
22
|
+
- **served model** — the model the worker's receipt (the route's adapter
|
|
23
|
+
reporting which model answered) names, otherwise `unverified`.
|
|
24
|
+
|
|
25
|
+
The requested model is a fact about the request and is always known; the served
|
|
26
|
+
model is a claim about the backend and is known only from a receipt. `unverified`
|
|
27
|
+
means no receipt exists, not that the model is unknown. In anything the user
|
|
28
|
+
reads, name a peer by its target and requested model. Add a serving caveat only
|
|
29
|
+
when a receipt disagrees with the request, or when the route requested no model
|
|
30
|
+
(Cursor default/Auto, OpenCode auto). A receipt-less route with a requested model
|
|
31
|
+
carries `model_actual: unverified` in the panel record and needs no caveat in
|
|
32
|
+
the chat note.
|
|
33
|
+
|
|
34
|
+
Attest the host from host-provided markers and serving evidence, never from
|
|
35
|
+
another installed CLI or home directory. Set `independence_verified: true` only
|
|
36
|
+
when the peer's served model family is attestably different from the host's.
|
|
37
|
+
Otherwise retain the useful cross-check but label independence unverified; do
|
|
38
|
+
not present it as different-model corroboration. If the host family is unknown,
|
|
39
|
+
automatic discovery excludes any candidate whose independence cannot be
|
|
40
|
+
verified rather than guessing.
|
|
41
|
+
|
|
42
|
+
Attest the host harness and its serving family as two separate tokens:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
XHOST_SEEN=;
|
|
46
|
+
if [ "${CLAUDECODE:-}" = "1" ]; then XHOST_SEEN="$XHOST_SEEN claude"; fi;
|
|
47
|
+
if [ -n "${CODEX_SANDBOX:-}${CODEX_SANDBOX_NETWORK_DISABLED:-}${CODEX_SESSION_ID:-}${CODEX_THREAD_ID:-}${CODEX_CI:-}" ]; then XHOST_SEEN="$XHOST_SEEN codex"; fi;
|
|
48
|
+
if [ "${GROK_AGENT:-}" = "1" ] || [ -n "${GROK_SESSION_ID:-}" ]; then XHOST_SEEN="$XHOST_SEEN grok"; fi;
|
|
49
|
+
if [ -n "${OMPCODE:-}" ]; then XHOST_HARNESS=omp; XHOST_FAMILY=unknown;
|
|
50
|
+
elif [ "$XHOST_SEEN" = " claude" ] || [ "$XHOST_SEEN" = " codex" ] || [ "$XHOST_SEEN" = " grok" ]; then XHOST_HARNESS="${XHOST_SEEN# }"; XHOST_FAMILY="$XHOST_HARNESS";
|
|
51
|
+
elif [ -n "$XHOST_SEEN" ]; then XHOST_HARNESS=unknown; XHOST_FAMILY=unknown;
|
|
52
|
+
elif [ -n "${CURSOR_AGENT:-}${CURSOR_CONVERSATION_ID:-}" ]; then XHOST_HARNESS=cursor; XHOST_FAMILY=unknown;
|
|
53
|
+
elif [ -n "${OPENCODE_TERMINAL:-}" ]; then XHOST_HARNESS=opencode; XHOST_FAMILY=unknown;
|
|
54
|
+
else XHOST_HARNESS=unknown; XHOST_FAMILY=unknown; fi
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Both tokens come from the same peer-key vocabulary as the targets above, never
|
|
58
|
+
from a provider's corporate name: `<host-serving-family>` (`XHOST_FAMILY`) is
|
|
59
|
+
`codex`, `claude`, `grok`, `composer`, `gemini`, or `unknown`. `<host-harness>`
|
|
60
|
+
(`XHOST_HARNESS`) is `codex`, `claude`, `grok`, `cursor`, `opencode`,
|
|
61
|
+
`antigravity`, `omp`, or `unknown`. The
|
|
62
|
+
snippet is evidence, not the verdict: it resolves the harnesses whose
|
|
63
|
+
environment markers it already names, and where it yields `unknown` on a harness
|
|
64
|
+
you can identify from your own runtime, attest what you know instead. A harness
|
|
65
|
+
the snippet does not name needs no new branch here.
|
|
66
|
+
|
|
67
|
+
Claude Code, Codex, and Grok each serve their own model family, so the snippet
|
|
68
|
+
takes the family from that harness's marker when it is the only such marker
|
|
69
|
+
present. Another harness can copy one of those markers (oh-my-pi sets
|
|
70
|
+
`CLAUDECODE=1` whatever model serves it), and a session started from inside
|
|
71
|
+
another harness inherits that harness's marker. So the snippet leaves family
|
|
72
|
+
`unknown` under `OMPCODE` or when more than one of those markers is present.
|
|
73
|
+
Pass a family the snippet names. Where it leaves family `unknown`, set it only
|
|
74
|
+
from a model id the runtime publishes as the model serving this session, and
|
|
75
|
+
only when that id maps to `codex`, `claude`, `grok`, `composer`, or `gemini`. A
|
|
76
|
+
requested model, the model's own claim, and the product name are not that id.
|
|
77
|
+
Never infer serving family from the Cursor brand.
|
|
78
|
+
|
|
79
|
+
Section 4 passes `XHOST_FAMILY` as the worker's first argument and
|
|
80
|
+
`XHOST_HARNESS` as `CROSS_MODEL_HOST_HARNESS`; a provider name such as
|
|
81
|
+
`anthropic`, `openai`, or `xai` in either slot makes the worker refuse the
|
|
82
|
+
job and produce no artifact.
|
|
83
|
+
|
|
84
|
+
`Cursor` and `Composer` are distinct targets:
|
|
85
|
+
|
|
86
|
+
- `cursor` uses `cursor-agent` with no forced model, allowing Cursor's configured
|
|
87
|
+
default/Auto choice. No model was requested, so unless a receipt identifies it,
|
|
88
|
+
report `Cursor default/Auto; serving model unverified` and
|
|
89
|
+
`independence_verified: false`.
|
|
90
|
+
- `composer` requests the current compatible Composer model through
|
|
91
|
+
`cursor-agent`.
|
|
92
|
+
- `grok` prefers the native Grok CLI; Grok through Cursor is a different route
|
|
93
|
+
and recipient. Section 3 binds which token.
|
|
94
|
+
- `antigravity` runs a Gemini model through Google Antigravity's ACP runtime,
|
|
95
|
+
and its serving family is `gemini`. A request for a Gemini peer binds this
|
|
96
|
+
target. `CROSS_MODEL_PEERS` sanctions it only through the literal token
|
|
97
|
+
`antigravity`, so a skip there names that token. It is never a peer when the
|
|
98
|
+
host's serving family is `gemini` or its harness is `antigravity`.
|
|
99
|
+
|
|
100
|
+
Apply exactly one participation branch:
|
|
101
|
+
|
|
102
|
+
`oracle` is shorthand for the panel behavior, not a keyword gate. An explicit
|
|
103
|
+
request to consult other models, gather independent peer opinions, pressure-test
|
|
104
|
+
with named peers, or reconcile their disagreement enters the same protocol even
|
|
105
|
+
when the request never says `oracle`. A request for ce-pov's take alone does not.
|
|
106
|
+
|
|
107
|
+
- **Named peers:** exact and uncapped. Announce and run every named target.
|
|
108
|
+
Explicit names override
|
|
109
|
+
`oracle` discovery and its cap. Never rewrite named `Cursor` to Composer or
|
|
110
|
+
replace an explicitly named model with another model.
|
|
111
|
+
- **Bare `oracle`:** select up to two reachable, attestably different-model
|
|
112
|
+
targets using conversation preference, local configuration, active project
|
|
113
|
+
conventions, then the default order `codex -> claude -> grok -> antigravity`;
|
|
114
|
+
announce the selection and run
|
|
115
|
+
it. Invoking `oracle` authorizes this ordinary read-only consultation against
|
|
116
|
+
the current project.
|
|
117
|
+
- **Explicit unnamed cross-check:** skip the correction-cost check and use the
|
|
118
|
+
count rule below; announce the selected peers and run them.
|
|
119
|
+
- **No explicit cross-check:** after ce-pov independently forms its POV, offer
|
|
120
|
+
only when meaningful downstream work will build on the take before an error
|
|
121
|
+
would show up, or it feeds a shared, public, security, or data commitment.
|
|
122
|
+
Adoption Tier 1 is ineligible; Tier 2/3 are eligible. A warm invocation (a
|
|
123
|
+
mid-session second opinion) never offers.
|
|
124
|
+
|
|
125
|
+
For the count rule: zero reachable means solo plus one availability line. One
|
|
126
|
+
or more auto-selected peers means one concise progress line naming the selected
|
|
127
|
+
targets before dispatch.
|
|
128
|
+
Cursor default and Composer are never selected automatically; they run when
|
|
129
|
+
named or configured as a preference.
|
|
130
|
+
|
|
131
|
+
**Prior-opinion subjects.** When the subject is an already-formed position —
|
|
132
|
+
ce-pov's own prior POV or the user's stated view — that position is the subject
|
|
133
|
+
artifact and ships in the payload; peers answer the underlying question with
|
|
134
|
+
their own verdict, and those `independent` voices enter convergence (unlike
|
|
135
|
+
`skeptic` mode, where the critique does not). Any fresh host meta-judgment formed
|
|
136
|
+
after the panel request (the summons) is withheld per Section 4's round-1 sequencing. A user-supplied
|
|
137
|
+
position is handled identically to a host-authored one — shipped as the subject,
|
|
138
|
+
never capitulated to.
|
|
139
|
+
|
|
140
|
+
## 2. Normalize scope and freeze repository identity
|
|
141
|
+
|
|
142
|
+
Normalize the allowed read scope once as:
|
|
143
|
+
|
|
144
|
+
- one repository-relative workspace root; and
|
|
145
|
+
- optional ordered include and exclude path patterns.
|
|
146
|
+
|
|
147
|
+
Pass that identical representation to every peer prompt and route adapter. The
|
|
148
|
+
default is the repository root. A narrower user- or host-supplied scope is
|
|
149
|
+
binding and is never broadened. Peers launched on the same host inspect existing
|
|
150
|
+
subject files and supporting evidence directly from this shared working tree;
|
|
151
|
+
point them to those files instead of copying their contents into the payload.
|
|
152
|
+
Pass material inline only when it exists solely in the conversation or is
|
|
153
|
+
otherwise unavailable in the workspace.
|
|
154
|
+
|
|
155
|
+
Treat include and exclude path patterns as cooperative unless the concrete
|
|
156
|
+
adapter turns them into filesystem controls. Never present prompt-only patterns,
|
|
157
|
+
a working directory, or a read-only flag as a confidentiality boundary, and
|
|
158
|
+
never promise that secrets inside the readable scope are inaccessible. Peers may
|
|
159
|
+
search and read within the declared scope but may not mutate the project or
|
|
160
|
+
intentionally inspect outside it. Every route denies the peer's write requests
|
|
161
|
+
and runs the adapter's read-only mode where one exists, but the Codex adapter
|
|
162
|
+
does not enforce its read-only mode, so no route is a write sandbox.
|
|
163
|
+
|
|
164
|
+
Before initial dispatch, capture one **repository-scope identity**: the committed
|
|
165
|
+
revision plus a digest of dirty and untracked content inside the normalized
|
|
166
|
+
scope. Include it in every peer payload. Revalidate it before every reconcile
|
|
167
|
+
dispatch and before final fold-in. If it changed, never reconcile or fold stale
|
|
168
|
+
voices into the current project: disclose the change and either restart all
|
|
169
|
+
voices on the new identity or return an incomplete panel result.
|
|
170
|
+
|
|
171
|
+
The caller passes this panel the resolved absolute `$SCRATCH_DIR` created in
|
|
172
|
+
SKILL.md Phase 1. Keep payloads, raw output, logs, and result artifacts there;
|
|
173
|
+
do not reconstruct the scratch root in this reference. Create each payload under
|
|
174
|
+
`umask 077`, then `chmod 600 "$PAYLOAD_PATH"` before dispatch; do not rely on
|
|
175
|
+
the ambient umask or a mode flag alone.
|
|
176
|
+
|
|
177
|
+
## 3. Resolve and announce one fixed route
|
|
178
|
+
|
|
179
|
+
Routing is adaptable only inside hard boundaries. The requested target plus
|
|
180
|
+
safety, authority, independence, read scope, and the rules on which external
|
|
181
|
+
recipients may receive project content are durable;
|
|
182
|
+
concrete model IDs, CLI flags, and availability are adapter defaults.
|
|
183
|
+
|
|
184
|
+
For each peer:
|
|
185
|
+
|
|
186
|
+
1. Probe current route and model capabilities without giving the process project
|
|
187
|
+
content or repository access.
|
|
188
|
+
2. Try the declared preferred mapping first.
|
|
189
|
+
3. If that default is observed unavailable, obsolete, or incompatible, choose
|
|
190
|
+
only the closest compatible equivalent in the same requested target, model
|
|
191
|
+
family, and reasoning tier. Record the observed local fact and substitute.
|
|
192
|
+
An explicit user model request cannot become another model. For
|
|
193
|
+
`antigravity`, the worker's own fallback from `gemini-4-argon` to
|
|
194
|
+
`gemini-3.8-flash` is the preferred mapping, so the host passes no
|
|
195
|
+
replacement model for it.
|
|
196
|
+
4. Resolve one concrete target, model choice, harness route, provider, and every
|
|
197
|
+
intermediary. Confirm every actual recipient is on the allowlist of permitted
|
|
198
|
+
external recipients.
|
|
199
|
+
5. Announce the selected target and route in ordinary language before dispatch.
|
|
200
|
+
|
|
201
|
+
The fixed route passed to the worker accepts exactly these tokens; the worker
|
|
202
|
+
refuses anything else (including route-shaped guesses like `codex-cli`):
|
|
203
|
+
|
|
204
|
+
| Target | Route token(s) |
|
|
205
|
+
|--------|----------------|
|
|
206
|
+
| `codex` | `codex` |
|
|
207
|
+
| `claude` | `claude` |
|
|
208
|
+
| `grok` | `grok-cli` (native CLI) or `grok-cursor` (via Cursor intermediary) |
|
|
209
|
+
| `cursor` | `cursor` |
|
|
210
|
+
| `composer` | `composer` |
|
|
211
|
+
| `opencode` | `opencode` |
|
|
212
|
+
| `antigravity` | `antigravity` |
|
|
213
|
+
|
|
214
|
+
The host harness does not choose the Grok route. Target `grok` binds `grok-cli` when that CLI is installed. Bind `grok-cursor` only when the user asked for Grok through Cursor, or when the grok CLI is absent and Cursor is a sanctioned recipient.
|
|
215
|
+
|
|
216
|
+
Binary presence proves only that a route is a candidate. Pre-dispatch capability
|
|
217
|
+
evidence may refine the fixed route only when the current host context makes that
|
|
218
|
+
evidence authoritative. Do not preflight authentication there: the
|
|
219
|
+
provider-capable worker attempt owns authentication truth, and a valid artifact
|
|
220
|
+
is the usability proof. Classify a failed run from its structured diagnostics
|
|
221
|
+
rather than guessing from a generic terminal state.
|
|
222
|
+
|
|
223
|
+
The dispatched worker runs only the fixed route. It must return failure to the
|
|
224
|
+
host rather than automatically hopping to another provider or intermediary. If
|
|
225
|
+
a retry would add an unexpected recipient or intermediary, resolve it at the
|
|
226
|
+
host, explain the change, and ask before starting a new fixed-route job. An
|
|
227
|
+
active user, project, or organization instruction that separately gates external
|
|
228
|
+
consultation also requires approval. Otherwise the explicit peer, cross-check,
|
|
229
|
+
or `oracle` invocation is the authority to proceed. A named peer that cannot run
|
|
230
|
+
within these rules is reported, never silently replaced or dropped.
|
|
231
|
+
|
|
232
|
+
The pre-dispatch update should say who will inspect the subject and that the
|
|
233
|
+
review is read-only. Do not recite scope mechanics, promise that repository
|
|
234
|
+
secrets are inaccessible, or describe probe results, CLI versions, model tiers,
|
|
235
|
+
commit hashes, repository identity, route health, job lifecycle, or scratch
|
|
236
|
+
paths. Mention a cooperative scope restriction only when it materially changes
|
|
237
|
+
the user's choice. Refer to the codebase as "this project" or "the repository"
|
|
238
|
+
unless the user supplied a recognizable name.
|
|
239
|
+
|
|
240
|
+
## 4. Dispatch, wait, reap, and collect
|
|
241
|
+
|
|
242
|
+
Prepare one complete canonical payload containing the framed question, subject
|
|
243
|
+
shape, normalized read scope, repository-scope identity, mode, paths to subject
|
|
244
|
+
material already in the workspace, and required conversational material that is
|
|
245
|
+
not available there. Let peers inspect and ground against the shared working
|
|
246
|
+
tree. Do not duplicate readable files or add a host-curated architecture summary
|
|
247
|
+
merely to brief the peer.
|
|
248
|
+
|
|
249
|
+
For an initial `independent` round, exclude ce-pov's position and every other
|
|
250
|
+
voice's conclusion. The proposal, document, or approach set being judged is the
|
|
251
|
+
subject and remains fully available; independence means withholding prior
|
|
252
|
+
judgments about it, not withholding the artifact. The host's own argument —
|
|
253
|
+
candidate-risk enumerations, decisive premises stated as fact, advocacy framing,
|
|
254
|
+
and evaluative option labels — is reconcile-round material, not round-1 material;
|
|
255
|
+
the independent round carries only the framed question, the subject, the read
|
|
256
|
+
scope, and the evidence. Define round-1 evidence by provenance: source-located
|
|
257
|
+
facts and the user's decision-relevant need are round-1 material, while host
|
|
258
|
+
interpretations, risk rankings, and recommended consequences are not (for
|
|
259
|
+
example, "the file at PATH contains X" is round-1 evidence, while "X is the risky
|
|
260
|
+
option" waits for reconcile). Label inlined conversation-only material as such.
|
|
261
|
+
When the user's goal bears on the decision, include the goal, how strongly they
|
|
262
|
+
hold it, and any evidence they gave for it. State in the payload that rejecting every supplied option, or the
|
|
263
|
+
framing itself, is a valid position. When ce-pov authored the subject in-session,
|
|
264
|
+
present the options symmetrically in the payload's own words even though the full
|
|
265
|
+
subject document remains attached. When the subject is itself an already-formed
|
|
266
|
+
position (Section 1), the list of material to withhold above applies only to fresh
|
|
267
|
+
host framing generated in response to the panel request: the position's own
|
|
268
|
+
premises, labels, and advocacy ship intact as the subject artifact, and only host
|
|
269
|
+
meta-judgment formed about it after the panel request waits for reconcile — peers still return their own
|
|
270
|
+
independent verdict. For `skeptic` mode, include
|
|
271
|
+
ce-pov's position because critiquing it is the task. Reconciliation payloads
|
|
272
|
+
follow Section 5 and deliberately include already-formed positions.
|
|
273
|
+
|
|
274
|
+
Verify that the same complete payload fits every selected route; never truncate
|
|
275
|
+
it per provider. A route that cannot accept it is unavailable under the ordinary
|
|
276
|
+
partial-panel degradation rule.
|
|
277
|
+
|
|
278
|
+
Use `scripts/cross-model-pov.sh` from this skill's directory to run one resolved
|
|
279
|
+
fixed route per peer, and `scripts/peer-job-runner.py` for detached lifecycle
|
|
280
|
+
control. Pass the actual repository root separately from
|
|
281
|
+
any narrower read root, and pre-create the round output directory as private
|
|
282
|
+
scratch outside the repository. For named peers, start one job per exact target;
|
|
283
|
+
for a selected panel, start one job per selected peer. Start all jobs before
|
|
284
|
+
waiting.
|
|
285
|
+
|
|
286
|
+
**At the defaults, the peer budget needs nothing from you.** This skill's worker
|
|
287
|
+
stops itself at 600s and the runner supervisor derives a floor of 1230s, so the
|
|
288
|
+
runner window is already longer than the worker's cap and kills nothing healthy.
|
|
289
|
+
|
|
290
|
+
**Raising `CROSS_MODEL_HARD_SECS` widens the runner window automatically.** The
|
|
291
|
+
runner derives its supervisor hard cap from the ambient knob
|
|
292
|
+
(`max(1230, knob + 30)`). Do not set a numeric `CE_PEER_HARD_SECS` here — and
|
|
293
|
+
clear any ambient one on the start prefix (`CE_PEER_HARD_SECS=`) so a stale
|
|
294
|
+
export cannot undercut the derivation. Do not re-export a *resolved*
|
|
295
|
+
`CROSS_MODEL_HARD_SECS` onto the worker's command line: that converts a
|
|
296
|
+
fallback into an override and strips the worker of its own default.
|
|
297
|
+
|
|
298
|
+
Each worker writes `<run-dir>/pov-<target>.json`, where `<target>` is the resolved
|
|
299
|
+
route target with `grok-cli`/`grok-cursor` collapsing to `grok`. Pass exactly that
|
|
300
|
+
path as `--result-path` to `peer-job-runner.py start`, so `done` is keyed to the
|
|
301
|
+
artifact and `result <job-id>` reads it without guessing the filename or the
|
|
302
|
+
host's provider key.
|
|
303
|
+
|
|
304
|
+
**Runner prefix.** Every runner call below starts with these two lines, in the
|
|
305
|
+
*same* tool call as the command, because each tool call is a fresh shell. Set
|
|
306
|
+
`SKILL_DIR` to the absolute directory of **this** skill's `SKILL.md`; the shell's
|
|
307
|
+
working directory is the user's project, not the skill directory. Do not
|
|
308
|
+
hardcode `python3`: on native Windows it resolves to a Microsoft Store stub that
|
|
309
|
+
exits without running Python and still satisfies `command -v`, so the prefix
|
|
310
|
+
probes execution rather than presence.
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
SKILL_DIR="<absolute path of the directory containing the SKILL.md you just read>";
|
|
314
|
+
PY="$(for c in python3 python py; do command -v "$c" >/dev/null 2>&1 && "$c" -c '' >/dev/null 2>&1 && { echo "$c"; break; }; done)"; [ -n "$PY" ] || { echo "no working Python 3 interpreter on PATH" >&2; exit 1; };
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**Host command-sandbox boundary.** The detached worker inherits the permission
|
|
318
|
+
context of the `start` call that launches it. Before executing that exact call,
|
|
319
|
+
treat `CODEX_SANDBOX_NETWORK_DISABLED` as a positive signal that the current
|
|
320
|
+
Codex command sandbox cannot reach the provider; unsetting it does not change
|
|
321
|
+
the sandbox policy. A DNS or authentication failure alone is not proof of that
|
|
322
|
+
condition. Use the narrowest host permission that restores the fixed route's
|
|
323
|
+
provider connection. When Codex exposes only full command escalation, attach
|
|
324
|
+
this request to the exact `peer-job-runner.py start ...` tool call after the
|
|
325
|
+
existing disclosure of which external provider receives the subject:
|
|
326
|
+
|
|
327
|
+
```json
|
|
328
|
+
{
|
|
329
|
+
"sandbox_permissions": "require_escalated",
|
|
330
|
+
"justification": "Allow the disclosed read-only cross-model panel request to reach the fixed external provider."
|
|
331
|
+
}
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Disclose that this is not launcher-only isolation: the detached worker inherits
|
|
335
|
+
that launch context for its lifetime, so the adapter's declared read-only/tool
|
|
336
|
+
restrictions — not the Codex command sandbox — bound the peer while the subject
|
|
337
|
+
is sent to the provider. If the grant is denied or unavailable, do not execute `start`; create
|
|
338
|
+
no peer job, drop that voice, and continue with the surviving panel. After
|
|
339
|
+
`start` returns a job id, any network, authentication, or provider failure is a
|
|
340
|
+
started-job outcome and follows the ordinary terminal/recovery rules; keep
|
|
341
|
+
`status`, `wait`, `result`, and `reap` sandboxed because they need no provider
|
|
342
|
+
connection.
|
|
343
|
+
|
|
344
|
+
Start one job per peer with the runner prefix and this command, filling every
|
|
345
|
+
`<...>` slot. The command is complete: do not read either script's source or a
|
|
346
|
+
peer CLI's help to build it.
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
CE_PEER_HARD_SECS= "$PY" "$SKILL_DIR/scripts/peer-job-runner.py" start --skill ce-pov --run-id "<run-id>" --label "<target>" --result-path "<run-dir>/pov-<target>.json" -- env CROSS_MODEL_HOST_HARNESS="<host-harness>" CROSS_MODEL_REPO_ROOT="<repo-root>" CROSS_MODEL_READ_ROOT="<read-root>" CROSS_MODEL_SCRATCH_PARENT="<scratch-dir>" bash "$SKILL_DIR/scripts/cross-model-pov.sh" "<host-serving-family>" "<fixed-route>" "<payload-path>" "<run-dir>"
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
- `<host-serving-family>` is `codex`, `claude`, `grok`, `composer`, `gemini`,
|
|
353
|
+
or `unknown`; `<host-harness>` is `codex`, `claude`, `grok`, `cursor`,
|
|
354
|
+
`opencode`, `antigravity`, `omp`, or `unknown`. Both are the Section 1 attestation,
|
|
355
|
+
not a provider name.
|
|
356
|
+
- `<fixed-route>` is the sanctioned route token from Section 3's table;
|
|
357
|
+
`<target>` is its resolved target, with `grok-cli` and `grok-cursor`
|
|
358
|
+
collapsing to `grok`.
|
|
359
|
+
- `<payload-path>` is this round's mode-600 payload and `<run-dir>` the
|
|
360
|
+
pre-created round output directory; `<scratch-dir>` is the Phase 1 scratch
|
|
361
|
+
root, and `<run-id>` its basename.
|
|
362
|
+
- `<read-root>` is Section 2's normalized workspace root and `<repo-root>` the
|
|
363
|
+
actual repository root containing it.
|
|
364
|
+
- Add `CROSS_MODEL_INCLUDE_PATHS` / `CROSS_MODEL_EXCLUDE_PATHS` only when
|
|
365
|
+
Section 2 resolved patterns, and `CROSS_MODEL_MODEL_OVERRIDE_TARGET` /
|
|
366
|
+
`CROSS_MODEL_MODEL_OVERRIDE` only for a Section 3 same-family substitution.
|
|
367
|
+
|
|
368
|
+
Record every job id. Then wait for all of them with the runner prefix and this
|
|
369
|
+
command, which polls for up to 30 seconds per call:
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
"$PY" "$SKILL_DIR/scripts/peer-job-runner.py" wait --max-secs 30 --deadline-secs "${CROSS_MODEL_HARD_SECS:-600}" --deadline-grace-secs 10 <job-ids...>
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Each call prints one row per job (label, job id, state, seconds since start,
|
|
376
|
+
and the reason for any job that ended without a result), then one line that
|
|
377
|
+
says what to do next:
|
|
378
|
+
|
|
379
|
+
- `all settled` — no job is still running. Collect results from the rows that
|
|
380
|
+
say `done`. Every other row is a peer that did not answer; its reason is only
|
|
381
|
+
the runner's view, so take the cause you report from that job's log, as
|
|
382
|
+
described below.
|
|
383
|
+
- `waiting: ...` — run the same command again. Do not add a separate shell
|
|
384
|
+
sleep; `wait` itself provides the bounded polling delay.
|
|
385
|
+
- `deadline passed: reap <job-ids>, then wait once more; ...` — reap every
|
|
386
|
+
listed job in one call with the runner prefix and the command below, then
|
|
387
|
+
run the wait command once more. If that final wait prints the same line,
|
|
388
|
+
stop waiting and treat the jobs still running as timed out.
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
"$PY" "$SKILL_DIR/scripts/peer-job-runner.py" reap <job-ids...>
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
Job ids or job-directory paths are positional. `--skill`, `--run-id`, and
|
|
395
|
+
`--label` are start-only; never pass them to `wait` or `reap`. The deadline is
|
|
396
|
+
the worker's own cap plus 10 seconds (610s by default). It is counted from the
|
|
397
|
+
last job's start. The command passes the cap from `CROSS_MODEL_HARD_SECS` in
|
|
398
|
+
the host's environment to the runner, which adds the 10 seconds itself and
|
|
399
|
+
rejects a value that is not a plain number of seconds. The workers inherit the
|
|
400
|
+
same environment, so a user who exported a larger value keeps their wider
|
|
401
|
+
window. Never add `CROSS_MODEL_HARD_SECS` to the
|
|
402
|
+
start command's `env` prefix: the worker would see a cap this wait does not.
|
|
403
|
+
Never set a smaller `CROSS_MODEL_HARD_SECS` to finish sooner: some peers routinely need about four minutes, and a shorter cap drops
|
|
404
|
+
them after they have spent their run. Let each wait call run its full slice:
|
|
405
|
+
when your shell tool hands back control before the command exits (a Codex
|
|
406
|
+
shell session still running, a background task), keep reading that command's
|
|
407
|
+
output rather than starting another wait. Between waits, read the result of
|
|
408
|
+
any job whose row says `done` instead of holding it until the rest finish.
|
|
409
|
+
|
|
410
|
+
Classify every started job from its terminal state; `done` alone does not
|
|
411
|
+
prove a usable artifact exists.
|
|
412
|
+
|
|
413
|
+
Read artifacts and logs only through the runner's ownership-checked `result`
|
|
414
|
+
interface. Accept only schema-shaped artifacts whose `position` is a settled
|
|
415
|
+
answer to the framed question, with non-empty `reasoning`, a valid `movement`,
|
|
416
|
+
and the route/model receipt tuple. Settledness is the peer's own declaration
|
|
417
|
+
through the schema's required `final` flag, never a reading of its prose: a
|
|
418
|
+
settled `Blocked — …` verdict marked `final: true` is a usable answer, while
|
|
419
|
+
any shaped artifact whose `final` is not true is a placeholder. The worker
|
|
420
|
+
retries a non-final artifact once on the same route with a final-answer
|
|
421
|
+
requirement, inside the same hard window, and if it recurs or no window
|
|
422
|
+
remains drops the voice with `peer skip evidence: non-final position`. Should
|
|
423
|
+
a non-final artifact still reach you, treat it as no usable artifact, not as a
|
|
424
|
+
peer voice. Initial responses require `movement: initial`; reconcile
|
|
425
|
+
responses require `moved` or `held` plus what changed or why the new evidence
|
|
426
|
+
was insufficient.
|
|
427
|
+
|
|
428
|
+
Attribute a served model only from a receipt, never from the request. Record
|
|
429
|
+
target, actual harness/intermediary route, requested model, served model, and
|
|
430
|
+
`independence_verified` separately. A served model of `unverified` stays
|
|
431
|
+
`unverified` in the record; it does not become "unknown model" in the note,
|
|
432
|
+
because the requested model is known.
|
|
433
|
+
|
|
434
|
+
Every route runs through acpx, which needs Node 22.13 or newer and `npx`. A
|
|
435
|
+
worker line `transport unavailable (pre-egress, <scope>): <reason>` means the
|
|
436
|
+
peer did not run and nothing reached the provider; report that voice as not run
|
|
437
|
+
with the reason. Scope `shared` (Node, `npx`, or the npm fetch of acpx) fails
|
|
438
|
+
every route the same way, so another route cannot replace it. Scope `route`
|
|
439
|
+
(that route's CLI is missing, an acpx config file replaces its launch command,
|
|
440
|
+
or the model was rejected, with the available models listed) affects only that
|
|
441
|
+
route. A rejected model follows the refused-model rule below; any other
|
|
442
|
+
replacement follows Section 3's recipient rules.
|
|
443
|
+
|
|
444
|
+
When the requested model itself was refused (the adapter did not offer it, or
|
|
445
|
+
the provider rejected it for this account, which `peer skip evidence (reply):`
|
|
446
|
+
carries when the provider sent it as reply text), only the model failed and
|
|
447
|
+
the route is still usable. If the worker ran its own default model rather than
|
|
448
|
+
one the user named, start one new job for that voice on the same route, with
|
|
449
|
+
no new recipient. Give it Section 3's closest same-family substitute, picked
|
|
450
|
+
from `peer skip evidence (advertised models):` when that line is present. The
|
|
451
|
+
note says which model was rejected. A model the user named is never swapped.
|
|
452
|
+
|
|
453
|
+
If a job yields no usable artifact, use bounded `peer skip evidence`
|
|
454
|
+
from its log to state an observed quota, authentication, or route failure; never
|
|
455
|
+
invent a cause. Attribute an account authentication failure only after
|
|
456
|
+
provider-capable dispatch is positively established by the launch context or
|
|
457
|
+
provider response; then report the observed failure and login or
|
|
458
|
+
credential-refresh remediation. Without that proof, authentication-shaped peer
|
|
459
|
+
text describes only the peer's execution context: a sandboxed host can produce
|
|
460
|
+
the same signal as a genuine logout, so never report it as the user's account
|
|
461
|
+
being logged out or prompt a login command.
|
|
462
|
+
|
|
463
|
+
## 5. Detect dissent, verify claims, and reconcile
|
|
464
|
+
|
|
465
|
+
Only `mode: independent` voices enter convergence. Material dissent means a
|
|
466
|
+
different adoption grade, a different selected approach, or document bottom
|
|
467
|
+
lines that imply different reader actions (`proceed`, `revise-first`, or
|
|
468
|
+
`reject`) or disagree on whether a risk is fatal. Wording, emphasis, confidence,
|
|
469
|
+
or supporting detail with the same decision is concurrence.
|
|
470
|
+
|
|
471
|
+
The default limit is the independent initial round plus at most two reconcile
|
|
472
|
+
exchanges. A user-supplied pass or round limit overrides it: "one pass" or "one
|
|
473
|
+
round" means no reconcile exchange, while a larger explicit limit replaces the
|
|
474
|
+
default cap. Never reinterpret a smaller user limit as a suggestion.
|
|
475
|
+
|
|
476
|
+
For each reconcile exchange:
|
|
477
|
+
|
|
478
|
+
1. Revalidate repository-scope identity. Restart or return incomplete on change.
|
|
479
|
+
2. Have ce-pov reconsider every current position and its evidence.
|
|
480
|
+
3. Identify only disputed project claims that could change the decision. Verify
|
|
481
|
+
them against the allowed scope and classify each as `verified`,
|
|
482
|
+
`contradicted`, or `unverifiable`, with source locations when available.
|
|
483
|
+
4. Build one common evidence delta. Send the identical complete delta to every
|
|
484
|
+
surviving peer—never route-specific truncation—along with the full original
|
|
485
|
+
subject and every surviving voice's current position and reasoning, capped at
|
|
486
|
+
five succinct source-attributed evidence bullets per voice.
|
|
487
|
+
5. Re-resolve every fixed route under Section 3, then dispatch a fresh stateless
|
|
488
|
+
round. The same recipients need no question; an unexpected new recipient or
|
|
489
|
+
intermediary does. A failed peer is dropped for later rounds; do not reuse its
|
|
490
|
+
older position as if it participated.
|
|
491
|
+
|
|
492
|
+
When the initial independent voices materially dissent, run at least one
|
|
493
|
+
reconcile exchange before any stop, unless the user limited the run to one
|
|
494
|
+
pass. Deciding over a dissenter who never saw the counter-evidence is not a
|
|
495
|
+
reasoned convergence.
|
|
496
|
+
|
|
497
|
+
After fold-in, stop on the first matching enum:
|
|
498
|
+
|
|
499
|
+
- **`confident`** — ce-pov has a reasoned POV after weighing every survivor;
|
|
500
|
+
- **`no-movement`** — every surviving peer returned `held` and ce-pov is still
|
|
501
|
+
not confident; or
|
|
502
|
+
- **`limit-reached`** — the effective user-authorized finite limit completed
|
|
503
|
+
after initial dissent and ce-pov is still not confident.
|
|
504
|
+
|
|
505
|
+
Convergence is ce-pov's reasoned confidence, not a vote. A three-way split still
|
|
506
|
+
ends in a confident decision or the stalemate disclosure. Route `confident` to
|
|
507
|
+
the **Confident** disclosure below. Route `no-movement` and `limit-reached` to
|
|
508
|
+
the **Stalemate** disclosure; those stops mean bounded reconciliation ended
|
|
509
|
+
without confident convergence, never that ce-pov should infer a settled result.
|
|
510
|
+
|
|
511
|
+
The cap stops automatic dispatch; it is a checkpoint, not proof that another
|
|
512
|
+
round would be useless. At the checkpoint, decide whether a bounded extension is
|
|
513
|
+
likely to change the result. Recommend a specific number of additional exchanges
|
|
514
|
+
only when ce-pov can name the unresolved decision-relevant question, the new
|
|
515
|
+
evidence or framing the extension would introduce, and why it could move a
|
|
516
|
+
position. Otherwise recommend stopping. Further rounds require user approval
|
|
517
|
+
unless the user supplied the larger limit in advance; each approval establishes
|
|
518
|
+
a new finite cap, never an open-ended loop.
|
|
519
|
+
|
|
520
|
+
## 6. Decide and disclose
|
|
521
|
+
|
|
522
|
+
Lead with ce-pov's POV in the active subject shape, followed by a compact panel
|
|
523
|
+
note:
|
|
524
|
+
|
|
525
|
+
- **Confident:** state whether voices aligned. Concurrence raises confidence but
|
|
526
|
+
does not eliminate correlated-model blind spots. If ce-pov decided over
|
|
527
|
+
dissent, name the disagreement and why its result prevailed. Claim peer
|
|
528
|
+
agreement only for what the peers judged; name any recommendation you added
|
|
529
|
+
after the panel as your own.
|
|
530
|
+
- **Stalemate:** state ce-pov's current position, each surviving peer's position
|
|
531
|
+
and movement, every dropped voice's last state, and whether the disagreement
|
|
532
|
+
is an evidence gap or judgment difference. Recommend when there is a real
|
|
533
|
+
basis; otherwise say "Either is viable" with the material tradeoffs. At a cap,
|
|
534
|
+
add **Further rounds:** recommend a specific bounded extension with its new
|
|
535
|
+
evidence path, or recommend stopping because no additional exchange is likely
|
|
536
|
+
to change the result.
|
|
537
|
+
- **Partial:** name surviving and dropped targets and the observed failure state
|
|
538
|
+
(for example quota, authentication, timeout, or a non-final placeholder
|
|
539
|
+
position that survived the bounded retry).
|
|
540
|
+
- **No survivor:** deliver the solo POV with "cross-model check unavailable or
|
|
541
|
+
incomplete." When a summons was present but the panel branch never entered
|
|
542
|
+
(no reachable peers, or the branch was never entered), still state that panel status —
|
|
543
|
+
which peers were attempted, or that none ran and the observed reason — rather
|
|
544
|
+
than shipping a bare solo verdict.
|
|
545
|
+
|
|
546
|
+
Retain target, route, requested model, served model, and independence receipts in
|
|
547
|
+
the panel record, but keep the default chat note decision-relevant: name the
|
|
548
|
+
peer by target and requested model, its position and movement, any observed
|
|
549
|
+
failure, and a serving or independence caveat only where a receipt disagreed, no
|
|
550
|
+
model was requested, or independence affects credibility. Do not dump route or model diagnostics unless they
|
|
551
|
+
materially change the conclusion or the user asks. Never attribute a position to
|
|
552
|
+
a model that did not run.
|
|
553
|
+
|
|
554
|
+
The panel itself never mutates. After delivery, apply SKILL.md Phase 4's
|
|
555
|
+
four-part conjunction: the original prompt explicitly authorized the named
|
|
556
|
+
downstream action, the result is non-stalemated, the action stays in inherited
|
|
557
|
+
scope, and it is non-destructive and otherwise authorized. All four must pass
|
|
558
|
+
for handoff; otherwise return the judgment without starting downstream work. A calling workflow retains ownership of continuation.
|
|
559
|
+
|
|
560
|
+
## 7. Skeptic mode and degradation
|
|
561
|
+
|
|
562
|
+
When asked to challenge ce-pov rather than form an independent POV, set
|
|
563
|
+
`mode: skeptic`. Fold a valid attributed critique into ce-pov once, but do not
|
|
564
|
+
put that voice into convergence. Disclose whether it changed the POV. A failed
|
|
565
|
+
skeptic degrades like any unavailable peer.
|
|
566
|
+
|
|
567
|
+
A peer never blocks a POV. Mid-round failure drops only that voice; an
|
|
568
|
+
oversized canonical payload drops routes that cannot accept the identical
|
|
569
|
+
payload; no surviving peer yields the solo POV plus the availability note.
|
|
570
|
+
|
|
571
|
+
Distinguish a route-level failure from a dispatch-infrastructure failure. A
|
|
572
|
+
route that runs and returns no usable artifact is dropped as above. But if the
|
|
573
|
+
dispatch scripts themselves fail unexpectedly — a crash, a non-zero exit before
|
|
574
|
+
any job starts, an unresolved script path — do not drop that peer on the first
|
|
575
|
+
error. Attempt the same resolved route by hand, holding the selected target and
|
|
576
|
+
model, the normalized read scope, and the round's independence rules fixed.
|
|
577
|
+
Keep attempting only while each failure is a new, plausibly recoverable one and
|
|
578
|
+
the panel's aggregate deadline has not passed; stop and fall to the solo POV
|
|
579
|
+
once a failure repeats or the deadline is spent. A hand recovery may not
|
|
580
|
+
substitute a different target, widen read scope, or include a withheld
|
|
581
|
+
position — those make the recovered peer's result untrustworthy, not merely
|
|
582
|
+
unavailable.
|
|
583
|
+
|
|
584
|
+
## 8. Cleanup
|
|
585
|
+
|
|
586
|
+
Remove every consumed job directory, round output directory, payload, raw log,
|
|
587
|
+
and result beneath this run's private scratch root on success, failure, timeout,
|
|
588
|
+
interruption, and reap. Never delete outside the current run root. Peer reasoning
|
|
589
|
+
and project context must not outlive their use.
|
|
590
|
+
|
|
591
|
+
## Participation, announcement, and disclosure (relocated from the body)
|
|
592
|
+
|
|
593
|
+
A summons (a panel request) is an **affirmative** request to consult or reconcile peers, detected by reasoning over the invocation context — the user's wording or a calling skill's args. Wording that declines consultation ("solo POV, do not cross-check") or merely recounts a past cross-check names the same terms without asking for one, and is not a summons: peers are not dispatched and no project context leaves the run. For an affirmative request, a caller's paraphrase in one channel never cancels a summons still present in another; only a summons erased from every readable channel upstream is unrecoverable here.
|
|
594
|
+
Invoking a named peer, an explicit cross-check, or `oracle` authorizes the panel protocol's normal read-only consultation against this project. Announce the selected peers before dispatch; ask only when a retry adds an unexpected recipient or intermediary, or an active instruction requires separate approval. Peers inspect the shared working tree directly and are told not to edit it. The panel protocol preserves an unbiased initial round, bounds evidence-based reconciliation while honoring user-supplied pass limits, and attributes only receipt-supported independence.
|
|
595
|
+
Any POV delivered after a summons states which peers ran, or that none did and the observed reason; if no panel runs after a summons, keep the verdict content unchanged but add that panel-status line rather than shipping a bare solo verdict. A POV with no summons keeps the solo result unchanged with no panel note.
|
|
596
|
+
Keep the host's own frozen position out of an independent peer's initial context; expose it only when the requested task is to critique that position or when a later reconciliation round compares already-formed views.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Requested continuation
|
|
2
|
+
|
|
3
|
+
The judgment itself completes `ce-pov`. When another workflow called it, return the result; that workflow decides the next action. Do not add a menu or capture offer.
|
|
4
|
+
|
|
5
|
+
A standalone invocation may hand off to another workflow only when the original request authorized the downstream action. The result must resolve the decision needed for that action. The action must remain within the inherited scope and be non-destructive and otherwise authorized. A recommendation alone grants no implementation authority. When a consequential choice remains with the user, return that choice under the skill body's interaction rule; otherwise finish with the result.
|
|
6
|
+
|
|
7
|
+
Choose any authorized continuation from the actual outcome, not a fixed menu. Adoption may need planning or a trial; a document take may inform revisions; an approach-set position may return to design or execution. Invoke the skill responsible for that next step through the host's skill-invocation capability with the decision, evidence, conditions, and inherited scope. Never assume every positive result requires a plan.
|
|
8
|
+
|
|
9
|
+
For a requested full write-up, read `references/report.md`. For a requested durable decision capture, invoke `ce-compound` with `mode:non-interactive` and the structured decision fitting an existing capture type. Neither is a required follow-up to a POV.
|