claude-dev-env 2.16.0 → 2.18.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/.agents/agents/AGENTS.md +6 -0
- package/.agents/skills/AGENTS.md +34 -35
- package/.agents/skills/_shared/pr-loop/AGENTS.md +22 -15
- package/.agents/skills/_shared/pr-loop/portable-driver.md +6 -7
- package/.agents/skills/_shared/pr-loop/prompts/AGENTS.md +2 -2
- package/.agents/skills/_shared/pr-loop/scripts/AGENTS.md +1 -1
- package/.agents/skills/_shared/pr-loop/scripts/portable_converge_driver.py +25 -16
- package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/portable_driver_constants.py +1 -5
- package/.agents/skills/autoconverge/reference/convergence-gates.md +31 -0
- package/.agents/skills/autoconverge/reference/convergence.md +8 -10
- package/.agents/skills/autoconverge/reference/gotchas.md +1 -1
- package/.agents/skills/autoconverge/reference/stop-conditions.md +1 -1
- package/.agents/skills/autoconverge/workflow/converge.codex-gate.test.mjs +1 -1
- package/.agents/skills/autoconverge/workflow/converge.contract.test.mjs +1 -1
- package/.agents/skills/autoconverge/workflow/converge.mjs +3 -3
- package/.agents/skills/cert-classification-rule/SKILL.md +224 -0
- package/.agents/skills/cert-classification-rule/scripts/resort_cert_folders.py +158 -0
- package/.agents/skills/eli5/SKILL.md +128 -0
- package/.agents/skills/eli5/reference/task-seeds.md +11 -0
- package/.agents/skills/fresh-branch/scripts/test_create_fresh_branch.py +2 -3
- package/.agents/skills/name-by-capability-audit/SKILL.md +67 -0
- package/.agents/skills/name-by-capability-audit/reference/fetch-commands.md +29 -0
- package/.agents/skills/name-by-capability-audit/reference/offense-examples.md +32 -0
- package/.agents/skills/name-by-capability-audit/reference/report-template.md +29 -0
- package/.agents/skills/name-by-capability-audit/reference/rule-checklist.md +38 -0
- package/.agents/skills/name-by-capability-audit/reference/task-seeds.md +9 -0
- package/.agents/skills/orchestrator/SKILL.md +6 -4
- package/.agents/skills/orchestrator-refresh/SKILL.md +9 -5
- package/.agents/skills/pr-cleanup/SKILL.md +99 -0
- package/.agents/skills/prototype/reference/honest-limitations.md +1 -1
- package/.agents/skills/prototype/reference/promotion-tasks.md +1 -1
- package/.agents/skills/prototype/scripts/test_build_sandbox_settings.py +2 -2
- package/.agents/skills/prototype/workflows/promotion.md +2 -2
- package/.agents/skills/review-router/SKILL.md +51 -0
- package/.agents/skills/review-router/reference/route-policy.json +7 -0
- package/.agents/skills/review-router/reference/task-seeds.md +1 -0
- package/.agents/skills/review-router/scripts/conftest.py +4 -0
- package/.agents/skills/review-router/scripts/review_router.py +50 -0
- package/.agents/skills/review-router/scripts/review_router_cli.py +211 -0
- package/.agents/skills/review-router/scripts/review_router_constants/__init__.py +1 -0
- package/.agents/skills/review-router/scripts/review_router_constants/config/__init__.py +0 -0
- package/.agents/skills/review-router/scripts/review_router_constants/config/constants.py +13 -0
- package/.agents/skills/review-router/scripts/test_review_router.py +23 -0
- package/.agents/skills/review-router/scripts/test_review_router_cli.py +47 -0
- package/.agents/skills/review-tier/SKILL.md +56 -0
- package/.agents/skills/review-tier/reference/task-seeds.md +1 -0
- package/.agents/skills/review-tier/reference/tier-policy.json +9 -0
- package/.agents/skills/review-tier/scripts/conftest.py +4 -0
- package/.agents/skills/review-tier/scripts/review_tier.py +332 -0
- package/.agents/skills/review-tier/scripts/review_tier_constants/__init__.py +1 -0
- package/.agents/skills/review-tier/scripts/review_tier_constants/config/__init__.py +0 -0
- package/.agents/skills/review-tier/scripts/review_tier_constants/config/constants.py +29 -0
- package/.agents/skills/review-tier/scripts/test_generation.py +171 -0
- package/.agents/skills/review-tier/scripts/test_review_tier.py +33 -0
- package/.agents/skills/session-log/SKILL.md +1 -1
- package/.agents/skills/shared-extraction-audit/SKILL.md +160 -0
- package/.agents/skills/shared-extraction-audit/reference/examples.md +46 -0
- package/.agents/skills/shared-extraction-audit/reference/offense-taxonomy.md +100 -0
- package/.agents/skills/source-command-logifix/SKILL.md +29 -0
- package/.agents/skills/source-command-sr-loop/SKILL.md +58 -0
- package/.agents/skills/team-advisor/SKILL.md +5 -5
- package/.agents/skills-archived/AGENTS.md +45 -0
- package/.agents/{skills → skills-archived}/anthropic-plan/AGENTS.md +1 -1
- package/.agents/{skills → skills-archived}/bugteam/scripts/reflow_skill_md.py +3 -3
- package/.agents/{skills → skills-archived}/codex-review/test_skill_scaffold.py +1 -1
- package/.agents/{skills → skills-archived}/copilot-finding-triage/SKILL.md +1 -1
- package/.agents/{skills → skills-archived}/pr-converge/SKILL.md +6 -6
- package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/AGENTS.md +1 -1
- package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/constants.py +1 -1
- package/.agents/{skills → skills-archived}/pr-converge/reference/multi-pr-orchestration.md +1 -1
- package/.agents/{skills → skills-archived}/pr-converge/reference/per-tick.md +3 -3
- package/.agents/{skills → skills-archived}/pr-converge/scripts/reflow_skill_md.py +2 -2
- package/.agents/{skills → skills-archived}/pr-converge/test_portable_pacer_gate.py +6 -2
- package/.agents/{skills → skills-archived}/pr-converge/workflows/schedule-wakeup-loop.md +1 -1
- package/.agents/{skills → skills-archived}/split-pr/reference/proposal-format.md +1 -1
- package/AGENTS.md +34 -58
- package/_shared/AGENTS.md +2 -0
- package/_shared/advisor/AGENTS.md +5 -5
- package/_shared/advisor/advisor-protocol.md +54 -31
- package/_shared/advisor/reference/advisor-block.md +5 -1
- package/_shared/advisor/reference/consult-format.md +1 -1
- package/_shared/advisor/reference/identity.md +28 -0
- package/_shared/advisor/reference/lifecycle.md +8 -1
- package/_shared/advisor/reference/sol-rung.md +14 -9
- package/_shared/advisor/reference/spawn-walk-log.md +6 -5
- package/_shared/advisor/reference/third-party-bind.md +6 -7
- package/_shared/advisor/reference/warm-up.md +9 -2
- package/_shared/advisor/scripts/codex_sol_advisor.py +66 -11
- package/_shared/advisor/scripts/config/advisor_scripts_constants/advisor_route_constants.py +9 -0
- package/_shared/advisor/scripts/config/advisor_scripts_constants/model_tier_run_validator_constants.py +16 -4
- package/_shared/advisor/scripts/config/advisor_scripts_constants/sol_advisor_constants.py +11 -10
- package/_shared/advisor/scripts/model_tier_run_validator.py +50 -23
- package/_shared/advisor/scripts/tests/test_codex_sol_advisor.py +108 -3
- package/_shared/advisor/scripts/tests/test_model_tier_run_validator.py +171 -82
- package/_shared/advisor/scripts/tests/test_tier_model_ids.py +43 -0
- package/_shared/advisor/scripts/tier_model_ids.py +75 -7
- package/_shared/pr-loop/audit-reply-template.md +4 -0
- package/_shared/pr-loop/fix-protocol.md +7 -6
- package/_shared/pr-loop/gh-payloads.md +8 -6
- package/_shared/pr-loop/precatch-rubric.md +6 -5
- package/_shared/pr-loop/scripts/AGENTS.md +15 -0
- package/_shared/pr-loop/scripts/_pr_converge_path_setup.py +38 -0
- package/_shared/pr-loop/scripts/check_bugbot_ci.py +279 -0
- package/_shared/pr-loop/scripts/check_convergence.py +923 -0
- package/_shared/pr-loop/scripts/check_convergence_availability.py +275 -0
- package/_shared/pr-loop/scripts/check_convergence_gates.py +279 -0
- package/_shared/pr-loop/scripts/check_convergence_thread_gates.py +219 -0
- package/_shared/pr-loop/scripts/check_pending_reviews.py +154 -0
- package/_shared/pr-loop/scripts/codex_down_classifier.py +98 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/.claude/CLAUDE.md +1 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/AGENTS.md +18 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/__init__.py +1 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/classifier_constants.py +35 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/codex_usage_probe_constants.py +82 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/findings_constants.py +18 -0
- package/_shared/pr-loop/scripts/codex_review_scripts_constants/run_constants.py +53 -0
- package/_shared/pr-loop/scripts/codex_usage_probe.py +570 -0
- package/_shared/pr-loop/scripts/conftest.py +43 -0
- package/_shared/pr-loop/scripts/fetch_copilot_reviews.py +134 -0
- package/_shared/pr-loop/scripts/fixtures/auth_failure_synthetic.txt +1 -0
- package/_shared/pr-loop/scripts/fixtures/config_load_failure_v0.125.0.txt +1 -0
- package/_shared/pr-loop/scripts/fixtures/freeform_findings_v0.144.3.txt +6 -0
- package/_shared/pr-loop/scripts/fixtures/model_rejection_v0.125.0.jsonl +5 -0
- package/_shared/pr-loop/scripts/fixtures/structured_findings.txt +13 -0
- package/_shared/pr-loop/scripts/fixtures/success_stream_v0.144.3.jsonl +6 -0
- package/_shared/pr-loop/scripts/fixtures/unknown_failure_synthetic.txt +1 -0
- package/_shared/pr-loop/scripts/fixtures/usage_limit_synthetic.txt +1 -0
- package/_shared/pr-loop/scripts/parse_codex_findings.py +207 -0
- package/_shared/pr-loop/scripts/post_fix_reply.py +168 -0
- package/_shared/pr-loop/scripts/pr_converge_scripts_constants/.claude/CLAUDE.md +1 -0
- package/_shared/pr-loop/scripts/pr_converge_scripts_constants/AGENTS.md +18 -0
- package/_shared/pr-loop/scripts/pr_converge_scripts_constants/__init__.py +0 -0
- package/_shared/pr-loop/scripts/pr_converge_scripts_constants/convergence_gate_constants.py +70 -0
- package/_shared/pr-loop/scripts/pr_converge_scripts_constants/pr_converge_constants.py +118 -0
- package/_shared/pr-loop/scripts/pr_converge_scripts_constants/reflow_skill_md_constants.py +13 -0
- package/_shared/pr-loop/scripts/pr_converge_skill_constants/.claude/CLAUDE.md +1 -0
- package/_shared/pr-loop/scripts/pr_converge_skill_constants/AGENTS.md +26 -0
- package/_shared/pr-loop/scripts/pr_converge_skill_constants/__init__.py +0 -0
- package/_shared/pr-loop/scripts/pr_converge_skill_constants/constants.py +69 -0
- package/_shared/pr-loop/scripts/run_codex_review.py +609 -0
- package/_shared/pr-loop/scripts/test__pr_converge_path_setup.py +30 -0
- package/_shared/pr-loop/scripts/test_check_bugbot_ci.py +312 -0
- package/_shared/pr-loop/scripts/test_check_convergence.py +438 -0
- package/_shared/pr-loop/scripts/test_check_convergence_availability.py +391 -0
- package/_shared/pr-loop/scripts/test_check_convergence_codex.py +517 -0
- package/_shared/pr-loop/scripts/test_check_convergence_contract.py +400 -0
- package/_shared/pr-loop/scripts/test_check_convergence_fixture.py +179 -0
- package/_shared/pr-loop/scripts/test_check_convergence_gates.py +84 -0
- package/_shared/pr-loop/scripts/test_check_convergence_thread_gates.py +99 -0
- package/_shared/pr-loop/scripts/test_codex_down_classifier.py +143 -0
- package/_shared/pr-loop/scripts/test_codex_usage_probe.py +683 -0
- package/_shared/pr-loop/scripts/test_parse_codex_findings.py +130 -0
- package/_shared/pr-loop/scripts/test_run_codex_review.py +969 -0
- package/_shared/pr-loop/scripts/tests/test_claude_permissions_common.py +1 -1
- package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +1 -1
- package/_shared/pr-loop/scripts/tests/test_fix_hookspath.py +1 -1
- package/_shared/pr-loop/state-schema.md +20 -28
- package/_shared/pr-loop/worker-spawn.md +4 -3
- package/_shared/process-tree/AGENTS.md +3 -3
- package/bin/ever-shipped-skills.mjs +29 -1
- package/bin/install-constants.mjs +15 -6
- package/bin/install.agents-home.test.mjs +13 -0
- package/bin/install.cursor-rules.test.mjs +3 -3
- package/bin/install.mjs +80 -20
- package/bin/install.profile-root.test.mjs +1 -1
- package/bin/install.prune.test.mjs +23 -204
- package/bin/install.test.mjs +8 -5
- package/bin/resolve-install-root.mjs +21 -0
- package/bin/resolve-package-managed-directory.mjs +4 -4
- package/commands/AGENTS.md +2 -0
- package/commands/sr-loop.md +3 -0
- package/docs/references/prose-style-enforcement.md +3 -7
- package/docs/references/team-advisor-skill.md +2 -2
- package/hooks/AGENTS.md +0 -3
- package/hooks/blocking/AGENTS.md +0 -2
- package/hooks/blocking/ask_user_question_shape_blocker.py +83 -0
- package/hooks/blocking/pre_tool_use_dispatcher.py +2 -19
- package/hooks/blocking/state_description_blocker.py +1 -1
- package/hooks/blocking/test_ask_user_question_shape.py +69 -0
- package/hooks/blocking/test_pre_tool_use_dispatcher.py +17 -58
- package/hooks/blocking/test_pre_tool_use_dispatcher_native.py +9 -104
- package/hooks/blocking/test_state_description_blocker.py +1 -0
- package/hooks/blocking/test_stop_dispatcher.py +1 -26
- package/hooks/hooks.json +1 -1
- package/hooks/hooks_constants/AGENTS.md +0 -3
- package/hooks/hooks_constants/ask_user_question_shape.py +1 -1
- package/hooks/hooks_constants/ask_user_question_shape_constants.py +73 -0
- package/hooks/hooks_constants/bot_mention_comment_blocker_constants.py +1 -2
- package/hooks/hooks_constants/code_rules_path_utils_constants.py +0 -1
- package/hooks/hooks_constants/pre_tool_use_dispatcher_constants.py +0 -7
- package/hooks/hooks_constants/stop_dispatcher_constants.py +0 -1
- package/hooks/hooks_constants/test_ask_user_question_shape.py +1 -1
- package/hooks/hooks_constants/test_prose_metrics_parity.py +29 -107
- package/hooks/hooks_constants/test_stop_dispatcher_constants.py +0 -1
- package/hooks/hooks_constants/working_style_prompt_constants.py +9 -10
- package/hooks/session/AGENTS.md +4 -1
- package/hooks/session/test_working_style_prompt.py +8 -4
- package/hooks/session/working_style_prompt.py +4 -2
- package/package.json +1 -4
- package/rules/AGENTS.md +2 -5
- package/rules/asd-ste100-language.md +39 -0
- package/rules/ask-user-question-required.md +1 -1
- package/rules/long-horizon-autonomy.md +1 -1
- package/scripts/AGENTS.md +1 -0
- package/scripts/Show-Asset.ps1 +106 -0
- package/scripts/test_validate_instruction_pairs.py +30 -3
- package/scripts/tests/test_engine.py +4 -4
- package/scripts/tests/test_rules.py +5 -5
- package/system-prompts/AGENTS.md +8 -0
- package/system-prompts/software-engineer.xml +8 -3
- package/.agents/skills/grokify/evals/README.md +0 -72
- package/.agents/skills/grokify/evals/parse-payload.test.mjs +0 -171
- package/.agents/skills/grokify/evals/run-capability-evals.mjs +0 -545
- package/_shared/pr-loop/scripts/README.md +0 -21
- package/docs/imagegen.md +0 -22
- package/hooks/blocking/eli11_reply_enforcer.py +0 -436
- package/hooks/blocking/plain_language_blocker.py +0 -758
- package/hooks/blocking/test_eli11_reply_enforcer.py +0 -390
- package/hooks/blocking/test_plain_language_blocker.py +0 -683
- package/hooks/blocking/test_plain_language_blocker_allowlist.py +0 -228
- package/hooks/diagnostic/AGENTS.md +0 -75
- package/hooks/diagnostic/CLAUDE.md +0 -1
- package/hooks/diagnostic/hook_log_extractor.py +0 -875
- package/hooks/diagnostic/hook_log_init.py +0 -202
- package/hooks/diagnostic/hook_log_stop_wrapper.py +0 -26
- package/hooks/diagnostic/migrations/2026-04-25-drop-themes-hook-events.sql +0 -3
- package/hooks/diagnostic/migrations/AGENTS.md +0 -16
- package/hooks/diagnostic/migrations/CLAUDE.md +0 -1
- package/hooks/diagnostic/migrations/README.md +0 -76
- package/hooks/diagnostic/queries/AGENTS.md +0 -19
- package/hooks/diagnostic/queries/CLAUDE.md +0 -1
- package/hooks/diagnostic/queries/block_details_for_hook.sql +0 -26
- package/hooks/diagnostic/queries/blocks_by_category.sql +0 -10
- package/hooks/diagnostic/queries/blocks_by_tool.sql +0 -9
- package/hooks/diagnostic/queries/blocks_last_7_days.sql +0 -11
- package/hooks/diagnostic/queries/top_blockers_last_24_hours.sql +0 -12
- package/hooks/diagnostic/queries/top_blockers_overall.sql +0 -12
- package/hooks/diagnostic/requirements-hook-logs-dev.txt +0 -2
- package/hooks/diagnostic/requirements-hook-logs.txt +0 -1
- package/hooks/diagnostic/schema.sql +0 -51
- package/hooks/diagnostic/test_hook_log_extractor.py +0 -1518
- package/hooks/diagnostic/test_hook_log_init.py +0 -227
- package/hooks/diagnostic/test_hook_log_stop_wrapper.py +0 -17
- package/hooks/hooks_constants/eli11_reply_enforcer_constants.py +0 -94
- package/hooks/hooks_constants/hook_log_extractor_constants.py +0 -233
- package/hooks/hooks_constants/plain_language_blocker_constants.py +0 -366
- package/hooks/hooks_constants/test_hook_log_extractor_constants.py +0 -123
- package/rules/doc-prose-cuts.md +0 -58
- package/rules/eli11-replies.md +0 -36
- package/rules/opus5-communication-contract.md +0 -45
- package/rules/plain-language.md +0 -9
- /package/.agents/{skills → skills-archived}/anthropic-plan/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/validate_packet_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/test_validate_packet.py +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/validate_packet.py +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/README.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/build-prompt.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/reuse-audit.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/source-map.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/templates/visual-plan.template.html +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/test_skill_contract.py +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/plan-packet.contract.test.mjs +0 -0
- /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/plan-packet.mjs +0 -0
- /package/.agents/{skills → skills-archived}/auditing-claude-config/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/auditing-claude-config/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/auditing-claude-config/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/auditing-claude-config/reference/probe-hook.md +0 -0
- /package/.agents/{skills → skills-archived}/beat-sheet/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/beat-sheet/reference/visual-beats.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/CONSTRAINTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/EXAMPLES.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/PROMPTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/README.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/audit-and-teammates.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/copilot-gap-analysis.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/design-rationale.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/github-pr-reviews.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-assign-ids.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-capture-excerpts.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-walk-categories.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-write-xml.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-append-summary.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-apply-fixes.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-git-add-commit.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-git-push.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-post-reply.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-publish-summary.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-py-compile.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-read-files.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-resolve-thread.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-test-suite.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-violation-count.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-write-xml.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/reference/team-setup.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/README.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_code_rules_gate.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_fix_hookspath.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_preflight.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/probe_code_rules_enforcer_check_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/reflow_skill_md_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/windows_safe_rmtree_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/probe_code_rules_enforcer_check.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/test_bugteam_code_rules_gate.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/test_bugteam_fix_hookspath.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/test_bugteam_preflight.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/test_probe_code_rules_enforcer_check.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/test_windows_safe_rmtree.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/scripts/windows_safe_rmtree.py +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/sources.md +0 -0
- /package/.agents/{skills → skills-archived}/bugteam/test_skill_additions.py +0 -0
- /package/.agents/{skills → skills-archived}/closeout/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/closeout/reference/handoff-prompt-template.md +0 -0
- /package/.agents/{skills → skills-archived}/closeout/reference/pii-redaction-checklist.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/reference/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/reference/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/reference/cli-contract.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/reference/loop-integration.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_down_classifier.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/classifier_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/codex_usage_probe_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/findings_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/run_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_usage_probe.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/auth_failure_synthetic.txt +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/config_load_failure_v0.125.0.txt +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/freeform_findings_v0.144.3.txt +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/model_rejection_v0.125.0.jsonl +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/structured_findings.txt +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/success_stream_v0.144.3.jsonl +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/unknown_failure_synthetic.txt +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/usage_limit_synthetic.txt +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/parse_codex_findings.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/run_codex_review.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/test_codex_down_classifier.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/test_codex_usage_probe.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/test_parse_codex_findings.py +0 -0
- /package/.agents/{skills → skills-archived}/codex-review/scripts/test_run_codex_review.py +0 -0
- /package/.agents/{skills → skills-archived}/comments/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/condensing-instructions/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/reference/tier-rubric.md +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/conftest.py +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/copilot_finding_triage_constants/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/copilot_finding_triage_constants/config/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/copilot_finding_triage_constants/config/notify_ntfy_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/notify_ntfy.py +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/test_notify_ntfy.py +0 -0
- /package/.agents/{skills → skills-archived}/copilot-finding-triage/templates/notification.md +0 -0
- /package/.agents/{skills → skills-archived}/copilot-review/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/copilot-review/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/copilot-review/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/copilot-review/templates/subagent-prompt.md +0 -0
- /package/.agents/{skills → skills-archived}/descriptions/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/emergencies/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/grokify/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/grokify/capability-claims.test.mjs +0 -0
- /package/.agents/{skills → skills-archived}/grokify/templates/handoff-template.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/final-validation-tasks.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/model-routing.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/packet-contract.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/packet-schema.json +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/process-inventory.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/review-loop.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/run-record.schema.json +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/self-audit-tasks.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/task-seeds.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/reference/task-ticket.md +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/config/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/config/constants.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/create_packet.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/load_skill_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_create_packet.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_validate_packet.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_validate_protocol.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_validate_run.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/validate_packet.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/validate_protocol.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/validate_run.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/test_skill_contract.py +0 -0
- /package/.agents/{skills → skills-archived}/plan-to-pr/test_task_ticket_contract.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/convergence-gates.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/examples.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/fix-protocol.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/ground-rules.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-post-replies.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-publish-summary.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-push.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-read-filelines.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-reset-state.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-resolve-threads.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-spawn-clean-coder.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-stage-commit.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-trigger-bugbot.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-write-test.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/progress-checklist.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/state-schema.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/reference/stop-conditions.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/README.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/_pr_converge_path_setup.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/caller-window-pid.ps1 +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_bugbot_ci.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence_availability.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence_gates.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence_thread_gates.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_pending_reviews.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/conftest.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue-caller.cmd +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue-stop-others.ps1 +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue.ahk +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue.cmd +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/fetch_copilot_reviews.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/post_fix_reply.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/convergence_gate_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/pr_converge_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/reflow_skill_md_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test__pr_converge_path_setup.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_bugbot_ci.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_availability.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_codex.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_contract.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_fixture.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_gates.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_thread_gates.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_cursor_agents_continue.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_reflow_skill_md.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/test_step5_host_branch.py +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/workflows/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-converge/workflows/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-fix-protocol/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-loop-cloud-transport/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-loop-cloud-transport/reference/identity-and-hooks.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-loop-cloud-transport/reference/substitution-matrix.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-loop-lifecycle/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/pr-loop-lifecycle/reference/teardown-publish-permissions.md +0 -0
- /package/.agents/{skills → skills-archived}/recall/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/recall/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/recall/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/release-notes-html/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/remember/.claude/CLAUDE.md +0 -0
- /package/.agents/{skills → skills-archived}/remember/AGENTS.md +0 -0
- /package/.agents/{skills → skills-archived}/remember/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/reviewer-gates/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/reviews/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/show/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/accessibility.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/art.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/charts.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/core-design.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/erds.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/flowcharts.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/host-and-html.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/illustrative-diagrams.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/interaction.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/mockups.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/quality-gates.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/structural-diagrams.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/subject-inventory.md +0 -0
- /package/.agents/{skills → skills-archived}/show/references/svg-contract.md +0 -0
- /package/.agents/{skills → skills-archived}/show/routing.yaml +0 -0
- /package/.agents/{skills → skills-archived}/show/samples/pr1262-v2.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/scripts/README.md +0 -0
- /package/.agents/{skills → skills-archived}/show/scripts/validate-artifact.py +0 -0
- /package/.agents/{skills → skills-archived}/show/scripts/validate-package.py +0 -0
- /package/.agents/{skills → skills-archived}/show/templates/html-widget.html +0 -0
- /package/.agents/{skills → skills-archived}/show/templates/svg-base.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/css-var.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/dead-ref.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/filled-glyph.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/inherited-fill.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/invalid.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/large-canvas.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/unfilled-connector.svg +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/fixtures/valid.html +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/test_validate-artifact.py +0 -0
- /package/.agents/{skills → skills-archived}/show/tests/test_validators.py +0 -0
- /package/.agents/{skills → skills-archived}/show/workflows/create-visual.md +0 -0
- /package/.agents/{skills → skills-archived}/show/workflows/review-visual.md +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/SKILL.md +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/reference/path-layers.md +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/reference/split-further-loop.md +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/reference/splitting-principles.md +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/analyze_pr.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/categorize_files.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/config/__init__.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/config/dependency_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/config/git_operations_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/config/packing_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/config/plan_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/config/split_pr_constants.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/execute_split_slices.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/pack_files_into_slices.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_dependency_graph.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_git_operations.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_layer_order.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_paginate.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_process_runner.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_script_types.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_title.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_analyze_pr.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_categorize_files.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_categorize_files_packing.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_execute_split_slices.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_dependency_graph.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_git_operations.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_layer_order.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_paginate.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_script_types.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_title.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_dependency_graph.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_plan.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_plan_contract.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_plan_path_normalization.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/verify_dependency_graph.py +0 -0
- /package/.agents/{skills → skills-archived}/split-pr/scripts/verify_plan.py +0 -0
|
@@ -12,10 +12,14 @@ The consult rules it restates are owned by [`consult-format.md`](consult-format.
|
|
|
12
12
|
|
|
13
13
|
> A shared session advisor named `<name>` is reachable via SendMessage; send each consult to it directly by that name.
|
|
14
14
|
|
|
15
|
+
## Transport preamble — Codex host
|
|
16
|
+
|
|
17
|
+
> A shared session advisor named `<name>` is reachable as a native Codex Sol subagent; send each consult to it in-session by that name.
|
|
18
|
+
|
|
15
19
|
## Transport preamble — third-party host
|
|
16
20
|
|
|
17
21
|
> The orchestrating session owns a standing advisor for this run.
|
|
18
|
-
> The advisor chain
|
|
22
|
+
> The advisor chain: Claude Fable, then Sol through the Codex CLI when Fable is out of usage and the sol flag and its preflight open that rung. Both rungs use `ADVISOR_EFFORT` (default low). When neither binds, there is no advisor.
|
|
19
23
|
> The orchestrating session is your one path to it: send each consult as a report to the session that assigned you, and it relays the advisor's reply.
|
|
20
24
|
|
|
21
25
|
## Shared core — every host
|
|
@@ -37,5 +37,5 @@ After a CORRECTION or PLAN, your next consult on that topic opens with what happ
|
|
|
37
37
|
|
|
38
38
|
Address a CORRECTION before treating the plan or the work as done, whether it names a wrong step or a risk worth closing.
|
|
39
39
|
Report a STOP, or a consult that finds the advisor unreachable, upward: team-advisor's sole consumer is the session itself, so it reports to the user; orchestrator's executors report to the orchestrating session, which decides.
|
|
40
|
-
When the advisor becomes unreachable, report that to the session that owns its lifecycle ([`lifecycle.md`](lifecycle.md)); that session alone decides whether to respawn (Claude Agent or third-party CLI re-bind).
|
|
40
|
+
When the advisor becomes unreachable, report that to the session that owns its lifecycle ([`lifecycle.md`](lifecycle.md)); that session alone decides whether to respawn (Claude Agent, Codex native Sol, or third-party CLI re-bind).
|
|
41
41
|
A third-party host that cannot re-bind follows the fail-closed rule in [`third-party-bind.md`](third-party-bind.md).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Session identity
|
|
2
|
+
|
|
3
|
+
Detail behind the **Host profiles** section of [`advisor-protocol.md`](../advisor-protocol.md).
|
|
4
|
+
Open this when binding the advisor and the session must name its identity.
|
|
5
|
+
|
|
6
|
+
## Resolve the profile
|
|
7
|
+
|
|
8
|
+
Call `resolve_session_identity` from `$HOME/.claude/_shared/advisor/scripts/tier_model_ids.py` with the session's named identity.
|
|
9
|
+
|
|
10
|
+
| Identity text | Host profile | Bind path |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| a `codex` token | Codex | In-session Sol spawn |
|
|
13
|
+
| a `claude` token | Claude | In-session Fable spawn of `session-advisor` |
|
|
14
|
+
| any other identity | ThirdParty | Headless CLI chain |
|
|
15
|
+
|
|
16
|
+
When both `codex` and `claude` tokens appear, Codex wins. Empty text is ThirdParty.
|
|
17
|
+
|
|
18
|
+
## Bind path
|
|
19
|
+
|
|
20
|
+
**Claude.** Spawn `subagent_type: session-advisor` at Fable through the Agent tool. When Fable is out of usage, bind Sol through the Codex helper if `ADVISOR_SOL` is on. Fail closed when neither binds.
|
|
21
|
+
|
|
22
|
+
**Codex.** Spawn a native in-session Sol subagent at `resolve_codex_model_id("Sol")` (`gpt-5.6-sol`). Walk `candidate_tiers = ["Sol"]`. Record `{tier: "Sol", result: "spawned"}` on success. The `ADVISOR_SOL` flag is not required. Fail closed when Sol does not bind. Do not walk Fable on a Codex host.
|
|
23
|
+
|
|
24
|
+
**ThirdParty.** Bind Fable through the CLI Claude-chain. When Fable is out of usage, bind Sol through the Codex helper if `ADVISOR_SOL` is on. Fail closed when neither binds.
|
|
25
|
+
|
|
26
|
+
## Mechanical override
|
|
27
|
+
|
|
28
|
+
Scripts that cannot self-identify read `detect_host_profile`. `ADVISOR_HOST_PROFILE` accepts `Claude`, `Codex`, or `ThirdParty`. `THIRD_PARTY=1` selects ThirdParty. The default is Claude.
|
|
@@ -12,10 +12,17 @@ One shared advisor exists per orchestrated session, owned by the session that sp
|
|
|
12
12
|
**Re-spawn on drift.** If a reply shows the agent working from a stale picture, or the session pivots to an unrelated task, the owning session ends that agent and spawns a fresh one with a new charter.
|
|
13
13
|
A **Fable**-tier re-spawn carries the exact token `FABLE-SPAWN-AUTHORIZED` in that fresh prompt, as a Fable-tier warm-up try does.
|
|
14
14
|
|
|
15
|
+
## Codex host
|
|
16
|
+
|
|
17
|
+
The session that spawns the shared Sol subagent owns its whole lifecycle — spawn, drift-respawn, and shutdown.
|
|
18
|
+
Every other consumer reaches it by message alone; spawn, respawn, and shutdown belong to the owning session.
|
|
19
|
+
|
|
20
|
+
**Re-spawn on drift.** If a reply shows the agent working from a stale picture, or the session pivots to an unrelated task, the owning session ends that agent and spawns a fresh native Sol subagent with a new charter.
|
|
21
|
+
|
|
15
22
|
## Third-party host
|
|
16
23
|
|
|
17
24
|
The orchestrating session owns the Claude CLI advisor bind for the whole run — first bind, re-bind on drift or lost `session_id`, and fail-closed report when the chain cannot serve.
|
|
18
25
|
|
|
19
26
|
**Re-bind on drift.** If a reply shows a stale picture, the task pivots, or `--resume` fails after a usage-limit failover (session stores are per binary/account), re-bind through `claude_chain_runner.py` with the charter plus a compact recap of consults so far.
|
|
20
|
-
Capture the new `session_id`, and log a fresh Fable
|
|
27
|
+
Capture the new `session_id`, and log a fresh Fable walk with `result: "cli"` on success, then Sol when that rung is open.
|
|
21
28
|
Executors keep reporting to the orchestrating session; advisor binding stays with that session alone.
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
# Sol rung
|
|
2
2
|
|
|
3
|
-
Detail behind the **Host profiles → Sol rung
|
|
4
|
-
Open this when
|
|
3
|
+
Detail behind the **Host profiles → Sol rung** section of [`advisor-protocol.md`](../advisor-protocol.md).
|
|
4
|
+
Open this when Fable is out of usage on a Claude or ThirdParty host and a Sol fallback bind is starting.
|
|
5
|
+
On a Codex host, Sol is the in-session default; see [`identity.md`](identity.md).
|
|
5
6
|
|
|
6
7
|
## Flag
|
|
7
8
|
|
|
8
|
-
`
|
|
9
|
-
Flag off both ways:
|
|
9
|
+
`ADVISOR_SOL=1` (or `true` / `yes` / `on`) opens the Sol fallback after Fable is out of usage. Two channels exist: set the variable in the helper's process environment, or pass `--enable-sol` on the helper invocation — the CLI flag opens the rung for that run without touching the environment.
|
|
10
|
+
Flag off both ways: fail closed when Fable did not bind.
|
|
10
11
|
A Windows `setx` write only updates the persisted user environment; only a process started after that write inherits the new value, so an already-running session either sets the flag in its own invoking process environment or passes `--enable-sol`.
|
|
11
12
|
|
|
13
|
+
## Effort
|
|
14
|
+
|
|
15
|
+
`ADVISOR_EFFORT` selects Codex `model_reasoning_effort` for Sol and `--effort` for Fable: `low`, `medium`, `high`, `xhigh`, or `max`. The default is `low`, which sends `model_reasoning_effort="low"`. Pass `--effort <level>` on the helper to set effort for that Sol run without changing the environment. An unset or unrecognized value uses `low`.
|
|
16
|
+
|
|
12
17
|
Every fallback reply carries a `fallback_kind` field: `declined` when policy closed the rung (flag off, usage meter at or below the gate) and `broken` when the Sol path itself failed (missing executable, spawn error, timeout, malformed reply). A `broken` fallback is a defect to report, not a routing outcome.
|
|
13
18
|
|
|
14
19
|
## Preflight
|
|
@@ -16,19 +21,19 @@ Every fallback reply carries a `fallback_kind` field: `declined` when policy clo
|
|
|
16
21
|
Flag on: run the Codex preflight first —
|
|
17
22
|
|
|
18
23
|
```
|
|
19
|
-
python ~/.claude/
|
|
24
|
+
python ~/.claude/_shared/pr-loop/scripts/codex_usage_probe.py
|
|
20
25
|
```
|
|
21
26
|
|
|
22
|
-
Repo home: `packages/claude-dev-env
|
|
27
|
+
Repo home: `packages/claude-dev-env/_shared/pr-loop/scripts/`.
|
|
23
28
|
|
|
24
29
|
The shared entry point is `~/.claude/_shared/advisor/scripts/codex_sol_advisor.py`; it calls the installed probe and owns Sol bind or resume parsing. Bind with `python ~/.claude/_shared/advisor/scripts/codex_sol_advisor.py --bind --cwd <repo-root>` and pipe the charter on stdin. Resume with `--resume <session_id>` and pipe the delta consult on stdin.
|
|
25
30
|
|
|
26
|
-
The gate passes only when the probe exits 0, `percent_left` is finite numeric data, and `percent_left` is strictly greater than `WEEKLY_USAGE_GATE_THRESHOLD_PERCENT` from the existing probe. The exact-threshold case
|
|
31
|
+
The gate passes only when the probe exits 0, `percent_left` is finite numeric data, and `percent_left` is strictly greater than `WEEKLY_USAGE_GATE_THRESHOLD_PERCENT` from the existing probe. The exact-threshold case fails closed when Fable did not bind.
|
|
27
32
|
|
|
28
33
|
## Branches
|
|
29
34
|
|
|
30
|
-
**Preflight pass** — bind one Codex CLI session at `gpt-5.6-sol` with `model_reasoning_effort
|
|
35
|
+
**Preflight pass** — bind one Codex CLI session at `gpt-5.6-sol` with `model_reasoning_effort` set from `ADVISOR_EFFORT` (default `low`), `--sandbox read-only`, and JSON output. The helper receives the standing-reviewer charter on stdin and returns only parsed ENDORSE / CORRECTION / PLAN / STOP guidance with a session ID.
|
|
31
36
|
|
|
32
|
-
**Preflight fail** — probe failure, non-zero exit, timeout, missing or malformed usage, `null`, non-finite usage, or usage at or below the threshold
|
|
37
|
+
**Preflight fail** — probe failure, non-zero exit, timeout, missing or malformed usage, `null`, non-finite usage, or usage at or below the threshold fails closed when Fable did not bind.
|
|
33
38
|
|
|
34
39
|
The helper owns the Sol attempt and returns an explicit fallback result. The consuming advisor path owns the Fable bind. Apply the same gate to every Sol attempt, including resume.
|
|
@@ -6,10 +6,11 @@ Detail behind the **Model floor** section of [`advisor-protocol.md`](../advisor-
|
|
|
6
6
|
|
|
7
7
|
Write the log as JSON with these field names:
|
|
8
8
|
|
|
9
|
-
- `own_tier` — the
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
9
|
+
- `own_tier` — the consuming session's tier (recorded; it does not add Opus to the advisor walk).
|
|
10
|
+
- `host_profile` — `Claude`, `Codex`, or `ThirdParty`. Omit to default to `Claude`.
|
|
11
|
+
- `candidate_tiers` — on Claude and ThirdParty, Fable, plus Sol when `sol_enabled` is true. On Codex, Sol only.
|
|
12
|
+
- `sol_enabled` — a boolean recorded before candidate selection; on Claude and ThirdParty, `true` adds Sol after Fable and `false` walks Fable alone. On Codex this flag does not change the walk.
|
|
13
|
+
- `attempts` — one `{tier, result}` entry appended as each bind try happens; `result` is `codex` for a Sol helper bind, `spawned` for an in-session spawn (Claude Agent or Codex native Sol), `cli` for a CLI Claude-chain bind, or a failure reason such as `unavailable`.
|
|
13
14
|
- `selected_tier` — the tier of the first successful bind (first `codex`, `spawned`, or `cli` entry), or `null` paired with a `fallback_reason` string when none bound.
|
|
14
15
|
|
|
15
16
|
## Log path
|
|
@@ -27,5 +28,5 @@ Exit code `1` means a ladder invariant failed.
|
|
|
27
28
|
Exit code `2` means the path or JSON was unusable.
|
|
28
29
|
The same checks are available in-process via `validate_model_tier_run(run)`.
|
|
29
30
|
|
|
30
|
-
The validator checks ladder shape only: the candidate slice, the order of bind tries, and the success-token rules per tier. Sol is attempted
|
|
31
|
+
The validator checks ladder shape only: the candidate slice, the order of bind tries, and the success-token rules per tier and host. On Claude and ThirdParty, Sol is attempted after Fable when `sol_enabled` is true, and `selected_tier: "Sol"` requires `result: "codex"`. On Codex, the walk is Sol only, and `result: "spawned"` or `result: "codex"` counts as success.
|
|
31
32
|
Host policy sits on top of it — see the Model floor section of the protocol.
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
# Third-party bind
|
|
2
2
|
|
|
3
3
|
Detail behind the **Host profiles → Third-party host** section of [`advisor-protocol.md`](../advisor-protocol.md).
|
|
4
|
-
Open this when binding or re-binding the advisor from a third-party (non-Claude) harness.
|
|
4
|
+
Open this when binding or re-binding the advisor from a third-party (non-Claude, non-Codex) harness.
|
|
5
5
|
|
|
6
6
|
## Bind steps
|
|
7
7
|
|
|
8
|
-
1.
|
|
9
|
-
2.
|
|
8
|
+
1. Name the session identity first (protocol **Host profiles**). This path is for a ThirdParty profile.
|
|
9
|
+
2. Walk `candidate_tiers = ["Fable"]`. When Fable is out of usage, the sol rung ([`sol-rung.md`](sol-rung.md)) binds Sol after Fable (`candidate_tiers = ["Fable", "Sol"]`).
|
|
10
10
|
3. **CLI bind (primary path):** for each candidate top-down, pipe a charter file into:
|
|
11
11
|
|
|
12
12
|
```
|
|
13
13
|
python "$HOME/.claude/scripts/claude_chain_runner.py" --routing-mode ordered_account -- -p --model <alias> --effort <effort> --output-format json
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
Use `--model fable --effort
|
|
17
|
-
|
|
18
|
-
The caller picks the Fable effort from task scope; when the caller cannot judge scope well enough to pick, it asks the user through AskUserQuestion before binding, and defaults to `high` when no caller choice arrives.
|
|
16
|
+
Use `--model fable --effort` with the value of `ADVISOR_EFFORT` (default `low`) on Fable.
|
|
17
|
+
User-facing wording follows [`rules/asd-ste100-language.md`](../../../rules/asd-ste100-language.md).
|
|
19
18
|
A root advisor bind uses `--routing-mode ordered_account` — walk order, failover, and the `advisor_blocked` terminal status are in [`cli-chain.md`](cli-chain.md).
|
|
20
19
|
4. Stop at the first successful bind.
|
|
21
20
|
Record `{tier, result: "cli"}` and set `selected_tier` to that tier.
|
|
@@ -27,4 +26,4 @@ Open this when binding or re-binding the advisor from a third-party (non-Claude)
|
|
|
27
26
|
## Session model field
|
|
28
27
|
|
|
29
28
|
Resolve a third-party session's own model field with `resolve_cli_model_id("ThirdParty")` → `third-party` when a host model alias is required.
|
|
30
|
-
The **advisor** bind uses Fable
|
|
29
|
+
The **advisor** bind uses the Fable alias. Sol binds through the Codex helper.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Warm-up spawn fields and charter
|
|
2
2
|
|
|
3
3
|
Detail behind the **Warm-up** section of [`advisor-protocol.md`](../advisor-protocol.md).
|
|
4
|
-
Open this when binding the warm advisor on a Claude host, and for the charter text on
|
|
4
|
+
Open this when binding the warm advisor on a Claude host or a Codex host, and for the charter text on every host.
|
|
5
5
|
|
|
6
6
|
## Spawn fields — Claude host
|
|
7
7
|
|
|
8
8
|
The consuming skill's session walks the candidate tiers top-down. For each try, spawn with:
|
|
9
9
|
|
|
10
10
|
- `subagent_type: session-advisor` (see [`agents/session-advisor.md`](../../../agents/session-advisor.md) for the full signal contract).
|
|
11
|
-
- `model`: the short alias for that try's candidate tier via `resolve_cli_model_id` (alias table: [`cli-chain.md`](cli-chain.md)) — for example `
|
|
11
|
+
- `model`: the short alias for that try's candidate tier via `resolve_cli_model_id` (alias table: [`cli-chain.md`](cli-chain.md)) — for example `fable`. The walk tries Fable first, then Sol when that rung is open.
|
|
12
12
|
- `name`: a name the session and every consumer will use to reach it (e.g. `team-advisor-agent`).
|
|
13
13
|
- `run_in_background: true`.
|
|
14
14
|
- `prompt`: the charter below. A **Fable**-tier try carries the exact token `FABLE-SPAWN-AUTHORIZED` in that prompt — `hooks/blocking/fable_spawn_gate.py` denies every `Agent` or `Task` spawn at `model: fable` whose prompt lacks that token. A try at any other tier needs no token.
|
|
@@ -29,6 +29,13 @@ State plainly:
|
|
|
29
29
|
|
|
30
30
|
The agent finishes its first turn standing by. `SendMessage` alone resumes it; between consults it waits quietly.
|
|
31
31
|
|
|
32
|
+
## Codex host
|
|
33
|
+
|
|
34
|
+
Spawn a native in-session Sol subagent at `resolve_codex_model_id("Sol")` (`gpt-5.6-sol`) with the charter as its prompt.
|
|
35
|
+
Record `{tier: "Sol", result: "spawned"}` on success. Fail closed when that spawn does not bind.
|
|
36
|
+
The `ADVISOR_SOL` flag is not required. Do not walk Fable. Consults stay in-session with that Sol subagent.
|
|
37
|
+
Identity routing: [`identity.md`](identity.md).
|
|
38
|
+
|
|
32
39
|
## Third-party host
|
|
33
40
|
|
|
34
41
|
Bind per [`third-party-bind.md`](third-party-bind.md) and charter the CLI session with the same charter — the reply contract is the same, and consults travel through the CLI runner.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Bind and consult a read-only Codex CLI session at Sol
|
|
1
|
+
"""Bind and consult a read-only Codex CLI session at Sol low effort."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -22,6 +22,8 @@ if _config_directory_text not in sys.path:
|
|
|
22
22
|
|
|
23
23
|
from advisor_scripts_constants.sol_advisor_constants import ( # noqa: E402
|
|
24
24
|
ADVISOR_CODEX_EXECUTABLE_ENV_VAR,
|
|
25
|
+
ALL_SOL_TRUTHY_VALUES,
|
|
26
|
+
CLAUDE_CONFIG_DIRECTORY_NAME,
|
|
25
27
|
CODEX_CONFIG_FLAG,
|
|
26
28
|
CODEX_EXECUTABLE,
|
|
27
29
|
CODEX_EXEC_SUBCOMMAND,
|
|
@@ -29,15 +31,15 @@ from advisor_scripts_constants.sol_advisor_constants import ( # noqa: E402
|
|
|
29
31
|
CODEX_MODEL_FLAG,
|
|
30
32
|
CODEX_PROMPT_FROM_STDIN,
|
|
31
33
|
CODEX_READ_ONLY_SANDBOX,
|
|
32
|
-
|
|
34
|
+
CODEX_REASONING_CONFIG_TEMPLATE,
|
|
33
35
|
CODEX_RESUME_SUBCOMMAND,
|
|
34
36
|
CODEX_SANDBOX_FLAG,
|
|
35
|
-
CLAUDE_CONFIG_DIRECTORY_NAME,
|
|
36
37
|
SOL_BIND_FAILURE_REASON,
|
|
37
38
|
SOL_CODEX_TIMEOUT_REASON,
|
|
38
39
|
SOL_CODEX_TIMEOUT_SECONDS,
|
|
39
|
-
|
|
40
|
+
SOL_EFFORT_FLAG,
|
|
40
41
|
SOL_ENABLE_FLAG,
|
|
42
|
+
SOL_ENV_VAR,
|
|
41
43
|
SOL_EXECUTABLE_NOT_FOUND_REASON,
|
|
42
44
|
SOL_FALLBACK_KIND_BROKEN,
|
|
43
45
|
SOL_FALLBACK_KIND_DECLINED,
|
|
@@ -48,14 +50,16 @@ from advisor_scripts_constants.sol_advisor_constants import ( # noqa: E402
|
|
|
48
50
|
SOL_PROBE_TIMEOUT_REASON,
|
|
49
51
|
SOL_REPLY_FAILURE_REASON,
|
|
50
52
|
SOL_SESSION_ID_METAVAR,
|
|
51
|
-
ALL_SOL_TRUTHY_VALUES,
|
|
52
53
|
SOL_USAGE_PROBE_TIMEOUT_SECONDS,
|
|
53
54
|
)
|
|
54
55
|
from advisor_scripts_constants.advisor_route_constants import ( # noqa: E402
|
|
55
56
|
ADVISOR_CODEX_MODEL_ID,
|
|
57
|
+
ADVISOR_EFFORT_DEFAULT,
|
|
58
|
+
ADVISOR_EFFORT_ENV_VAR,
|
|
56
59
|
ADVISOR_FALLBACK_RESULT,
|
|
57
60
|
ADVISOR_FALLBACK_TIER,
|
|
58
61
|
ADVISOR_MODEL_TIER,
|
|
62
|
+
ALL_ADVISOR_EFFORT_LEVELS,
|
|
59
63
|
ALL_ADVISOR_GUIDANCE_SIGNALS,
|
|
60
64
|
CODEX_BIND_SUCCESS_TOKEN,
|
|
61
65
|
SPAWN_OUTCOME_KEY,
|
|
@@ -143,7 +147,7 @@ def _resolved_setting_by_name(
|
|
|
143
147
|
def is_sol_advisor_enabled(
|
|
144
148
|
setting_by_name: Mapping[str, str] | None,
|
|
145
149
|
) -> bool:
|
|
146
|
-
"""Return whether the optional Sol
|
|
150
|
+
"""Return whether the optional Sol rung is enabled.
|
|
147
151
|
|
|
148
152
|
Args:
|
|
149
153
|
setting_by_name: Optional environment-like settings mapping.
|
|
@@ -158,6 +162,42 @@ def is_sol_advisor_enabled(
|
|
|
158
162
|
)
|
|
159
163
|
|
|
160
164
|
|
|
165
|
+
def resolve_advisor_effort(
|
|
166
|
+
setting_by_name: Mapping[str, str] | None,
|
|
167
|
+
) -> str:
|
|
168
|
+
"""Return the shared advisor effort from settings, or the default.
|
|
169
|
+
|
|
170
|
+
::
|
|
171
|
+
|
|
172
|
+
resolve_advisor_effort({"ADVISOR_EFFORT": "medium"})
|
|
173
|
+
# ok: "medium"
|
|
174
|
+
resolve_advisor_effort({"ADVISOR_EFFORT": "MAX"})
|
|
175
|
+
# ok: "max"
|
|
176
|
+
resolve_advisor_effort({})
|
|
177
|
+
# ok: default low
|
|
178
|
+
resolve_advisor_effort({"ADVISOR_EFFORT": "nope"})
|
|
179
|
+
# ok: default low
|
|
180
|
+
resolve_advisor_effort({"ADVISOR_SOL_EFFORT": "high"})
|
|
181
|
+
# ok: default low
|
|
182
|
+
|
|
183
|
+
Fable and Sol both read this value. Unset and unrecognized values use
|
|
184
|
+
low. The Sol-only name does not set effort.
|
|
185
|
+
|
|
186
|
+
Args:
|
|
187
|
+
setting_by_name: Optional environment-like settings mapping.
|
|
188
|
+
|
|
189
|
+
Returns:
|
|
190
|
+
One of low, medium, high, xhigh, or max.
|
|
191
|
+
"""
|
|
192
|
+
resolved_setting_by_name = _resolved_setting_by_name(setting_by_name)
|
|
193
|
+
requested_effort = (
|
|
194
|
+
resolved_setting_by_name.get(ADVISOR_EFFORT_ENV_VAR, "").strip().lower()
|
|
195
|
+
)
|
|
196
|
+
if requested_effort in ALL_ADVISOR_EFFORT_LEVELS:
|
|
197
|
+
return requested_effort
|
|
198
|
+
return ADVISOR_EFFORT_DEFAULT
|
|
199
|
+
|
|
200
|
+
|
|
161
201
|
def resolve_usage_probe_path(home_directory: Path) -> Path:
|
|
162
202
|
"""Return the installed Codex weekly usage probe path.
|
|
163
203
|
|
|
@@ -290,12 +330,14 @@ def resolve_codex_executable(
|
|
|
290
330
|
def build_codex_arguments(
|
|
291
331
|
codex_executable: str,
|
|
292
332
|
session_id: str | None = None,
|
|
333
|
+
reasoning_effort: str = ADVISOR_EFFORT_DEFAULT,
|
|
293
334
|
) -> list[str]:
|
|
294
335
|
"""Build the installed CLI's shell-free bind or resume argv.
|
|
295
336
|
|
|
296
337
|
Args:
|
|
297
338
|
codex_executable: Resolved executable name or path to invoke.
|
|
298
339
|
session_id: Optional existing session to resume.
|
|
340
|
+
reasoning_effort: Codex model_reasoning_effort token.
|
|
299
341
|
|
|
300
342
|
Returns:
|
|
301
343
|
The shell-free Codex command argument vector.
|
|
@@ -306,7 +348,7 @@ def build_codex_arguments(
|
|
|
306
348
|
CODEX_MODEL_FLAG,
|
|
307
349
|
ADVISOR_CODEX_MODEL_ID,
|
|
308
350
|
CODEX_CONFIG_FLAG,
|
|
309
|
-
|
|
351
|
+
CODEX_REASONING_CONFIG_TEMPLATE.format(effort=reasoning_effort),
|
|
310
352
|
CODEX_SANDBOX_FLAG,
|
|
311
353
|
CODEX_READ_ONLY_SANDBOX,
|
|
312
354
|
CODEX_JSON_FLAG,
|
|
@@ -435,7 +477,11 @@ def run_codex_sol_advisor(
|
|
|
435
477
|
)
|
|
436
478
|
try:
|
|
437
479
|
completed_process = process_runner(
|
|
438
|
-
build_codex_arguments(
|
|
480
|
+
build_codex_arguments(
|
|
481
|
+
codex_executable,
|
|
482
|
+
session_id=session_id,
|
|
483
|
+
reasoning_effort=resolve_advisor_effort(setting_by_name),
|
|
484
|
+
),
|
|
439
485
|
cwd=str(working_directory),
|
|
440
486
|
input=prompt,
|
|
441
487
|
capture_output=True,
|
|
@@ -467,7 +513,7 @@ def build_argument_parser() -> argparse.ArgumentParser:
|
|
|
467
513
|
The parser for the helper's bind and resume modes.
|
|
468
514
|
"""
|
|
469
515
|
argument_parser = argparse.ArgumentParser(
|
|
470
|
-
description="Bind or consult a read-only Codex Sol
|
|
516
|
+
description="Bind or consult a read-only Codex Sol advisor."
|
|
471
517
|
)
|
|
472
518
|
mode_group = argument_parser.add_mutually_exclusive_group(required=True)
|
|
473
519
|
mode_group.add_argument("--bind", action="store_true")
|
|
@@ -479,6 +525,13 @@ def build_argument_parser() -> argparse.ArgumentParser:
|
|
|
479
525
|
action="store_true",
|
|
480
526
|
help="Open the Sol rung for this invocation without an environment flag.",
|
|
481
527
|
)
|
|
528
|
+
argument_parser.add_argument(
|
|
529
|
+
SOL_EFFORT_FLAG,
|
|
530
|
+
dest="sol_effort",
|
|
531
|
+
choices=ALL_ADVISOR_EFFORT_LEVELS,
|
|
532
|
+
default=None,
|
|
533
|
+
help="Shared advisor effort for this invocation.",
|
|
534
|
+
)
|
|
482
535
|
return argument_parser
|
|
483
536
|
|
|
484
537
|
|
|
@@ -492,9 +545,11 @@ def main(all_cli_arguments: Sequence[str]) -> int:
|
|
|
492
545
|
Zero for a successful Sol response, or one for an explicit fallback.
|
|
493
546
|
"""
|
|
494
547
|
parsed_arguments = build_argument_parser().parse_args(list(all_cli_arguments))
|
|
495
|
-
setting_by_name:
|
|
548
|
+
setting_by_name: dict[str, str] = dict(os.environ)
|
|
496
549
|
if parsed_arguments.is_sol_requested:
|
|
497
|
-
setting_by_name =
|
|
550
|
+
setting_by_name[SOL_ENV_VAR] = "1"
|
|
551
|
+
if parsed_arguments.sol_effort is not None:
|
|
552
|
+
setting_by_name[ADVISOR_EFFORT_ENV_VAR] = parsed_arguments.sol_effort
|
|
498
553
|
advisor_reply = run_codex_sol_advisor(
|
|
499
554
|
prompt=sys.stdin.read(),
|
|
500
555
|
working_directory=parsed_arguments.cwd,
|
|
@@ -6,6 +6,15 @@ ADVISOR_MODEL_TIER: str = "Sol"
|
|
|
6
6
|
ADVISOR_CODEX_MODEL_ID: str = "gpt-5.6-sol"
|
|
7
7
|
ADVISOR_FALLBACK_TIER: str = "Fable"
|
|
8
8
|
ADVISOR_FALLBACK_RESULT: str = "fable"
|
|
9
|
+
ADVISOR_EFFORT_ENV_VAR: str = "ADVISOR_EFFORT"
|
|
10
|
+
ADVISOR_EFFORT_DEFAULT: str = "low"
|
|
11
|
+
ALL_ADVISOR_EFFORT_LEVELS: tuple[str, ...] = (
|
|
12
|
+
"low",
|
|
13
|
+
"medium",
|
|
14
|
+
"high",
|
|
15
|
+
"xhigh",
|
|
16
|
+
"max",
|
|
17
|
+
)
|
|
9
18
|
ALL_ADVISOR_GUIDANCE_SIGNALS: frozenset[str] = frozenset(
|
|
10
19
|
{"ENDORSE", "CORRECTION", "PLAN", "STOP"}
|
|
11
20
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Constants for the model-tier-run validator and CLI / Agent alias map.
|
|
2
2
|
|
|
3
3
|
They name the parts of a spawn-walk log: the tier ladder (strongest
|
|
4
|
-
first), the
|
|
4
|
+
first), the three host profiles, and the validation messages. Shared log
|
|
5
5
|
keys and bind-result tokens live in ``advisor_route_constants``.
|
|
6
6
|
|
|
7
7
|
::
|
|
@@ -11,9 +11,15 @@ The alias map turns each tier into its short CLI / Agent name (``opus``,
|
|
|
11
11
|
|
|
12
12
|
Host-profile detection (see ``detect_host_profile``):
|
|
13
13
|
|
|
14
|
-
- ``ADVISOR_HOST_PROFILE=ThirdParty
|
|
14
|
+
- ``ADVISOR_HOST_PROFILE=ThirdParty``, ``=Claude``, or ``=Codex`` — explicit override
|
|
15
15
|
- ``THIRD_PARTY=1`` (or ``true`` / ``yes``) — a third-party (non-Claude) harness
|
|
16
16
|
- default when neither is set: Claude
|
|
17
|
+
|
|
18
|
+
Session identity (see ``resolve_session_identity``):
|
|
19
|
+
|
|
20
|
+
- a ``codex`` token maps to Codex
|
|
21
|
+
- a ``claude`` token maps to Claude
|
|
22
|
+
- any other identity maps to ThirdParty
|
|
17
23
|
"""
|
|
18
24
|
|
|
19
25
|
from __future__ import annotations
|
|
@@ -24,11 +30,17 @@ from advisor_scripts_constants.advisor_route_constants import (
|
|
|
24
30
|
)
|
|
25
31
|
|
|
26
32
|
HOST_PROFILE_CLAUDE: str = "Claude"
|
|
33
|
+
HOST_PROFILE_CODEX: str = "Codex"
|
|
27
34
|
HOST_PROFILE_THIRD_PARTY: str = "ThirdParty"
|
|
28
35
|
ALL_HOST_PROFILES: tuple[str, ...] = (
|
|
29
36
|
HOST_PROFILE_CLAUDE,
|
|
37
|
+
HOST_PROFILE_CODEX,
|
|
30
38
|
HOST_PROFILE_THIRD_PARTY,
|
|
31
39
|
)
|
|
40
|
+
SESSION_IDENTITY_CLAUDE_TOKEN: str = "claude"
|
|
41
|
+
SESSION_IDENTITY_CODEX_TOKEN: str = "codex"
|
|
42
|
+
SESSION_IDENTITY_WORD_PATTERN: str = r"[a-z0-9]+"
|
|
43
|
+
HOST_PROFILE_JSON_KEY: str = "host_profile"
|
|
32
44
|
|
|
33
45
|
ALL_MODEL_TIERS: tuple[str, ...] = (
|
|
34
46
|
ADVISOR_FALLBACK_TIER,
|
|
@@ -42,7 +54,6 @@ ALL_KNOWN_TIER_NAMES: tuple[str, ...] = (
|
|
|
42
54
|
*ALL_MODEL_TIERS,
|
|
43
55
|
THIRD_PARTY_MODEL_TIER,
|
|
44
56
|
)
|
|
45
|
-
THIRD_PARTY_CLI_ADVISOR_FLOOR_TIER: str = "Opus"
|
|
46
57
|
|
|
47
58
|
ADVISOR_SENDMESSAGE_REPLY_WAIT_SECONDS: int = 120
|
|
48
59
|
|
|
@@ -62,8 +73,9 @@ ALL_THIRD_PARTY_TRUTHY_VALUES: frozenset[str] = frozenset(
|
|
|
62
73
|
UNKNOWN_OWN_TIER_MESSAGE: str = "own_tier is not a known model tier"
|
|
63
74
|
UNKNOWN_LADDER_NAME_ERROR: str = "ladder name is not a known model tier: {!r}"
|
|
64
75
|
UNKNOWN_HOST_PROFILE_ERROR: str = "host profile is not a known profile: {!r}"
|
|
76
|
+
HOST_PROFILE_MUST_BE_STRING_MESSAGE: str = "host_profile must be a string"
|
|
65
77
|
CANDIDATE_TIERS_MISMATCH_MESSAGE: str = (
|
|
66
|
-
"candidate_tiers does not match the
|
|
78
|
+
"candidate_tiers does not match the advisor walk for this host"
|
|
67
79
|
)
|
|
68
80
|
ATTEMPT_TIER_OUT_OF_SLICE_MESSAGE: str = (
|
|
69
81
|
"a spawn try names a tier outside the candidate slice"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Constants for the optional Codex Sol
|
|
1
|
+
"""Constants for the optional Codex Sol advisor bind."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ CODEX_READ_ONLY_SANDBOX: str = "read-only"
|
|
|
8
8
|
CODEX_JSON_FLAG: str = "--json"
|
|
9
9
|
CODEX_MODEL_FLAG: str = "--model"
|
|
10
10
|
CODEX_CONFIG_FLAG: str = "--config"
|
|
11
|
-
|
|
11
|
+
CODEX_REASONING_CONFIG_TEMPLATE: str = 'model_reasoning_effort="{effort}"'
|
|
12
12
|
CODEX_PROMPT_FROM_STDIN: str = "-"
|
|
13
13
|
CODEX_EXEC_SUBCOMMAND: str = "exec"
|
|
14
14
|
CODEX_RESUME_SUBCOMMAND: str = "resume"
|
|
@@ -17,17 +17,18 @@ CLAUDE_CONFIG_DIRECTORY_NAME: str = ".claude"
|
|
|
17
17
|
SOL_SESSION_ID_METAVAR: str = "SESSION_ID"
|
|
18
18
|
SOL_CODEX_TIMEOUT_SECONDS: float = 120.0
|
|
19
19
|
SOL_USAGE_PROBE_TIMEOUT_SECONDS: float = 30.0
|
|
20
|
-
SOL_ENV_VAR: str = "
|
|
20
|
+
SOL_ENV_VAR: str = "ADVISOR_SOL"
|
|
21
21
|
ALL_SOL_TRUTHY_VALUES: frozenset[str] = frozenset({"1", "true", "yes", "on"})
|
|
22
22
|
SOL_PREFLIGHT_FAILURE_REASON: str = "sol preflight did not establish an eligible Codex meter"
|
|
23
|
-
SOL_BIND_FAILURE_REASON: str = "Codex Sol
|
|
24
|
-
SOL_REPLY_FAILURE_REASON: str = "Codex Sol
|
|
23
|
+
SOL_BIND_FAILURE_REASON: str = "Codex Sol bind failed"
|
|
24
|
+
SOL_REPLY_FAILURE_REASON: str = "Codex Sol returned no advisor guidance"
|
|
25
25
|
SOL_PROBE_TIMEOUT_REASON: str = "Codex Sol meter check timed out"
|
|
26
|
-
SOL_CODEX_TIMEOUT_REASON: str = "Codex Sol
|
|
27
|
-
SOL_MALFORMED_JSONL_REASON: str = "Codex Sol
|
|
28
|
-
SOL_MISSING_SESSION_REASON: str = "Codex Sol
|
|
29
|
-
SOL_INVALID_SIGNAL_REASON: str = "Codex Sol
|
|
30
|
-
SOL_EXECUTABLE_NOT_FOUND_REASON: str = "Codex Sol
|
|
26
|
+
SOL_CODEX_TIMEOUT_REASON: str = "Codex Sol request timed out"
|
|
27
|
+
SOL_MALFORMED_JSONL_REASON: str = "Codex Sol returned malformed JSONL"
|
|
28
|
+
SOL_MISSING_SESSION_REASON: str = "Codex Sol returned no session id"
|
|
29
|
+
SOL_INVALID_SIGNAL_REASON: str = "Codex Sol returned an invalid guidance signal"
|
|
30
|
+
SOL_EXECUTABLE_NOT_FOUND_REASON: str = "Codex Sol could not find the codex executable on PATH"
|
|
31
31
|
SOL_FALLBACK_KIND_DECLINED: str = "declined"
|
|
32
32
|
SOL_FALLBACK_KIND_BROKEN: str = "broken"
|
|
33
33
|
SOL_ENABLE_FLAG: str = "--enable-sol"
|
|
34
|
+
SOL_EFFORT_FLAG: str = "--effort"
|