claude-dev-env 2.15.0 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/agents/.claude/CLAUDE.md +1 -0
- package/{agents → .agents/agents}/AGENTS.md +2 -2
- package/{agents → .agents/agents}/test_agent_frontmatter.py +1 -1
- package/.agents/skills/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/AGENTS.md +2 -2
- package/.agents/skills/_shared/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/_shared/AGENTS.md +2 -2
- package/.agents/skills/_shared/advisor/.claude/CLAUDE.md +1 -0
- package/.agents/skills/_shared/pr-loop/.claude/CLAUDE.md +1 -0
- package/.agents/skills/_shared/pr-loop/prompts/.claude/CLAUDE.md +1 -0
- package/.agents/skills/_shared/pr-loop/scripts/.claude/CLAUDE.md +1 -0
- package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/audit_category_schema_constants.py +6 -1
- package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_build_audit_prompt.py +9 -3
- package/{skills → .agents/skills}/_shared/pr-loop/scripts/write_audit_outcomes.py +1 -1
- package/{skills → .agents/skills}/_shared/pr-loop/scripts/write_fix_outcomes.py +1 -1
- package/.agents/skills/anthropic-plan/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/anthropic-plan/AGENTS.md +1 -1
- package/.agents/skills/anthropic-plan/scripts/.claude/CLAUDE.md +1 -0
- package/.agents/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/.claude/CLAUDE.md +1 -0
- package/.agents/skills/anthropic-plan/templates/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/anthropic-plan/test_skill_contract.py +4 -4
- package/.agents/skills/anthropic-plan/workflow/.claude/CLAUDE.md +1 -0
- package/.agents/skills/auditing-claude-config/.claude/CLAUDE.md +1 -0
- package/.agents/skills/autoconverge/.claude/CLAUDE.md +1 -0
- package/.agents/skills/autoconverge/reference/.claude/CLAUDE.md +1 -0
- package/.agents/skills/autoconverge/workflow/.claude/CLAUDE.md +1 -0
- package/.agents/skills/autoconverge/workflow/autoconverge_report_constants/.claude/CLAUDE.md +1 -0
- package/.agents/skills/bugteam/.claude/CLAUDE.md +1 -0
- package/.agents/skills/bugteam/reference/.claude/CLAUDE.md +1 -0
- package/.agents/skills/bugteam/reference/obstacles/.claude/CLAUDE.md +1 -0
- package/.agents/skills/bugteam/scripts/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/bugteam/scripts/bugteam_code_rules_gate.py +11 -1
- package/{skills → .agents/skills}/bugteam/scripts/bugteam_fix_hookspath.py +11 -1
- package/{skills → .agents/skills}/bugteam/scripts/bugteam_preflight.py +11 -1
- package/.agents/skills/bugteam/scripts/bugteam_scripts_constants/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/bugteam/scripts/reflow_skill_md.py +3 -3
- package/.agents/skills/codex-review/.claude/CLAUDE.md +1 -0
- package/.agents/skills/codex-review/reference/.claude/CLAUDE.md +1 -0
- package/.agents/skills/codex-review/scripts/codex_review_scripts_constants/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/codex-review/scripts/codex_usage_probe.py +11 -1
- package/{skills → .agents/skills}/codex-review/scripts/run_codex_review.py +11 -1
- package/{skills → .agents/skills}/codex-review/test_skill_scaffold.py +4 -4
- package/.agents/skills/copilot-review/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/e-code-review/reference/effort-evaluation.md +1 -1
- package/.agents/skills/everything-search/.claude/CLAUDE.md +1 -0
- package/.agents/skills/fresh-branch/.claude/CLAUDE.md +1 -0
- package/.agents/skills/grok-spawn/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/grokify/evals/README.md +1 -1
- package/.agents/skills/pr-converge/.claude/CLAUDE.md +1 -0
- package/.agents/skills/pr-converge/pr_converge_skill_constants/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/pr-converge/pr_converge_skill_constants/AGENTS.md +1 -1
- package/{skills → .agents/skills}/pr-converge/pr_converge_skill_constants/constants.py +1 -1
- package/.agents/skills/pr-converge/reference/.claude/CLAUDE.md +1 -0
- package/.agents/skills/pr-converge/reference/obstacles/.claude/CLAUDE.md +1 -0
- package/.agents/skills/pr-converge/scripts/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/pr-converge/scripts/_pr_converge_path_setup.py +17 -2
- package/.agents/skills/pr-converge/scripts/pr_converge_scripts_constants/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/pr-converge/scripts/reflow_skill_md.py +2 -2
- package/{skills → .agents/skills}/pr-converge/scripts/test__pr_converge_path_setup.py +7 -4
- package/.agents/skills/pr-converge/workflows/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/prototype/scripts/test_probe_sandbox_safety.py +1 -1
- package/.agents/skills/rebase/.claude/CLAUDE.md +1 -0
- package/.agents/skills/recall/.claude/CLAUDE.md +1 -0
- package/.agents/skills/remember/.claude/CLAUDE.md +1 -0
- package/.agents/skills/run-claude-dev-env/SKILL.md +84 -0
- package/.agents/skills/run-claude-dev-env/driver.mjs +239 -0
- package/.agents/skills/session-log/.claude/CLAUDE.md +1 -0
- package/.agents/skills/session-tidy/.claude/CLAUDE.md +1 -0
- package/.agents/skills/skill-builder/.claude/CLAUDE.md +1 -0
- package/.agents/skills/skill-builder/references/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/skill-builder/references/deterministic-elements.md +1 -1
- package/.agents/skills/skill-builder/templates/.claude/CLAUDE.md +1 -0
- package/.agents/skills/skill-builder/workflows/.claude/CLAUDE.md +1 -0
- package/{skills → .agents/skills}/split-pr/reference/proposal-format.md +1 -1
- package/.agents/skills/task-build/.claude/CLAUDE.md +1 -0
- package/.agents/skills/update/.claude/CLAUDE.md +1 -0
- package/.claude/CLAUDE.md +1 -0
- package/_shared/advisor/reference/sol-rung.md +1 -1
- package/_shared/advisor/scripts/tests/test_codex_sol_advisor.py +1 -1
- package/_shared/advisor/scripts/tier_model_ids.py +6 -2
- package/_shared/pr-loop/code-rules-gate.md +1 -1
- package/bin/AGENTS.md +17 -12
- package/bin/ever-shipped-skills.mjs +5 -2
- package/bin/install-constants.mjs +31 -6
- package/bin/install-plan.mjs +6 -1
- package/bin/install.agents-home.test.mjs +186 -0
- package/bin/install.mjs +120 -47
- package/bin/install.plan.test.mjs +1 -0
- package/bin/install.profile-root.test.mjs +53 -0
- package/bin/install.test.mjs +51 -8
- package/bin/publish-directory-pointer.mjs +175 -0
- package/bin/publish-directory-pointer.test.mjs +129 -0
- package/bin/resolve-install-root.mjs +59 -4
- package/bin/resolve-package-managed-directory.mjs +29 -0
- package/bin/resolve-package-managed-directory.test.mjs +97 -0
- package/hooks/blocking/hedging_language_blocker.py +1 -0
- package/hooks/blocking/orchestrator_refresh_reschedule_gate.py +10 -6
- package/hooks/blocking/test_code_rules_command_dispatch.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_magic_slice_bounds.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_split_annotations_length.py +1 -1
- package/hooks/blocking/test_code_rules_js_conventions.py +1 -1
- package/hooks/blocking/test_code_rules_js_resume_task_enumeration.py +1 -1
- package/hooks/blocking/test_code_rules_js_returns_object_schemaless.py +1 -1
- package/hooks/blocking/test_code_rules_js_sibling_return_object_key_drift.py +1 -1
- package/hooks/blocking/test_duplicate_rmtree_helper_blocker.py +1 -1
- package/hooks/blocking/test_fable_spawn_gate.py +1 -1
- package/hooks/blocking/test_orchestrator_refresh_reschedule_gate.py +1 -1
- package/hooks/hooks_constants/orchestrator_refresh_reschedule_gate_constants.py +9 -0
- package/installable-surfaces.manifest.json +2 -3
- package/package.json +4 -5
- package/scripts/AGENTS.md +0 -7
- package/scripts/active_capability_references.py +38 -8
- package/scripts/claude_chain_runner.py +49 -2
- package/scripts/claude_chain_usage.py +2 -0
- package/scripts/codex_compat_watcher.py +1 -1
- package/scripts/dev_env_scripts_constants/active_capability_constants.py +5 -2
- package/scripts/dev_env_scripts_constants/claude_chain_usage_constants.py +4 -1
- package/scripts/invoke_code_review.py +48 -51
- package/scripts/resolve_worker_spawn.py +42 -47
- package/scripts/test_claude_chain_runner.py +28 -0
- package/scripts/test_dispatcher_profile_import.py +184 -0
- package/scripts/test_resolve_worker_spawn.py +119 -1
- package/scripts/test_validate_instruction_pairs.py +30 -0
- package/scripts/test_verify_installable_package.py +2 -1
- package/scripts/tests/test_codex_compat_watcher.py +5 -5
- package/CLAUDE.md +0 -1
- package/agents/CLAUDE.md +0 -1
- package/scripts/profile-isolation-launchers/config/mcp-bundles.json +0 -25
- package/scripts/profile-isolation-launchers/config/profile-isolation-constants.mjs +0 -60
- package/scripts/profile-isolation-launchers/config/profiles.manifest.json +0 -54
- package/scripts/profile-isolation-launchers/config/shared-allowlist.json +0 -64
- package/scripts/profile-isolation-launchers/launcher-runtime.mjs +0 -180
- package/scripts/profile-isolation-launchers/lib/profile-manifest.mjs +0 -288
- package/scripts/profile-isolation-launchers/mcp-bundles.mjs +0 -275
- package/scripts/profile-isolation-launchers/profile-isolation-contract.test.mjs +0 -221
- package/scripts/profile-isolation-launchers/tests/launcher-runtime.test.mjs +0 -108
- package/scripts/profile-isolation-launchers/tests/mcp-bundles.test.mjs +0 -147
- package/scripts/profile-isolation-launchers/tests/shortcut-contract.test.ps1 +0 -102
- package/scripts/profile-isolation-launchers/tests/version-compatibility.test.mjs +0 -210
- package/scripts/profile-isolation-launchers/version-compatibility.mjs +0 -299
- package/scripts/profile-isolation-launchers/windows/shortcut-inventory.ps1 +0 -127
- package/scripts/profile-isolation-launchers/windows/shortcut-manifest.json +0 -51
- package/scripts/profile-isolation-launchers/windows/shortcut-reconcile.ps1 +0 -77
- package/skills/CLAUDE.md +0 -1
- package/skills/_shared/CLAUDE.md +0 -1
- package/skills/_shared/advisor/CLAUDE.md +0 -1
- package/skills/_shared/pr-loop/CLAUDE.md +0 -1
- package/skills/_shared/pr-loop/prompts/CLAUDE.md +0 -1
- package/skills/_shared/pr-loop/scripts/CLAUDE.md +0 -1
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/CLAUDE.md +0 -1
- package/skills/anthropic-plan/CLAUDE.md +0 -1
- package/skills/anthropic-plan/scripts/CLAUDE.md +0 -1
- package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/CLAUDE.md +0 -1
- package/skills/anthropic-plan/templates/CLAUDE.md +0 -1
- package/skills/anthropic-plan/workflow/CLAUDE.md +0 -1
- package/skills/auditing-claude-config/CLAUDE.md +0 -1
- package/skills/autoconverge/CLAUDE.md +0 -1
- package/skills/autoconverge/reference/CLAUDE.md +0 -1
- package/skills/autoconverge/workflow/CLAUDE.md +0 -1
- package/skills/autoconverge/workflow/autoconverge_report_constants/CLAUDE.md +0 -1
- package/skills/bugteam/CLAUDE.md +0 -1
- package/skills/bugteam/reference/CLAUDE.md +0 -1
- package/skills/bugteam/reference/obstacles/CLAUDE.md +0 -1
- package/skills/bugteam/scripts/CLAUDE.md +0 -1
- package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +0 -1
- package/skills/codex-review/CLAUDE.md +0 -1
- package/skills/codex-review/reference/CLAUDE.md +0 -1
- package/skills/codex-review/scripts/codex_review_scripts_constants/CLAUDE.md +0 -1
- package/skills/copilot-review/CLAUDE.md +0 -1
- package/skills/everything-search/CLAUDE.md +0 -1
- package/skills/fresh-branch/CLAUDE.md +0 -1
- package/skills/grok-spawn/CLAUDE.md +0 -1
- package/skills/pr-converge/CLAUDE.md +0 -1
- package/skills/pr-converge/pr_converge_skill_constants/CLAUDE.md +0 -1
- package/skills/pr-converge/reference/CLAUDE.md +0 -1
- package/skills/pr-converge/reference/obstacles/CLAUDE.md +0 -1
- package/skills/pr-converge/scripts/CLAUDE.md +0 -1
- package/skills/pr-converge/scripts/pr_converge_scripts_constants/CLAUDE.md +0 -1
- package/skills/pr-converge/workflows/CLAUDE.md +0 -1
- package/skills/rebase/CLAUDE.md +0 -1
- package/skills/recall/CLAUDE.md +0 -1
- package/skills/remember/CLAUDE.md +0 -1
- package/skills/session-log/CLAUDE.md +0 -1
- package/skills/session-tidy/CLAUDE.md +0 -1
- package/skills/skill-builder/CLAUDE.md +0 -1
- package/skills/skill-builder/references/CLAUDE.md +0 -1
- package/skills/skill-builder/templates/CLAUDE.md +0 -1
- package/skills/skill-builder/workflows/CLAUDE.md +0 -1
- package/skills/task-build/CLAUDE.md +0 -1
- package/skills/update/CLAUDE.md +0 -1
- /package/{agents → .agents/agents}/clean-coder.md +0 -0
- /package/{agents → .agents/agents}/code-quality-agent.md +0 -0
- /package/{agents → .agents/agents}/git-commit-crafter.md +0 -0
- /package/{agents → .agents/agents}/issue-tracker.md +0 -0
- /package/{agents → .agents/agents}/plan-packet-validator.md +0 -0
- /package/{agents → .agents/agents}/pr-description-writer.md +0 -0
- /package/{agents → .agents/agents}/session-advisor.md +0 -0
- /package/{agents → .agents/agents}/skill-writer-agent.md +0 -0
- /package/{skills → .agents/skills}/_shared/advisor/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/_shared/advisor/advisor-protocol.md +0 -0
- /package/{skills → .agents/skills}/_shared/advisor/scripts/README.md +0 -0
- /package/{skills → .agents/skills}/_shared/end-of-run-gotcha-recommendations.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/audit-contract.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/audit-reply-template.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/code-rules-gate.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/fix-protocol.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/gh-payloads.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/portable-driver.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/post-audit-thread-contract.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/precatch-rubric.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/prompts/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/prompts/pr-consistency-audit.xml +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/RUNTIME_SCRIPTS.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/_cli_utils.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/_path_resolver.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/_xml_utils.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/audit_category_schema.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/build_audit_prompt.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/build_converge_task_list.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/build_fix_prompt.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/init_loop_state.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/portable_converge_driver.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/preflight_worktree.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/select_converge_pacer.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/converge_task_list_constants.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/handoff_constants.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/pacer_constants.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/path_resolver_constants.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/portable_driver_constants.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/skills_pr_loop_constants/preflight_constants.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/teardown_worktrees.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test__path_resolver.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_audit_category_schema.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_build_converge_task_list.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_build_fix_prompt.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_init_loop_state.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_portable_converge_driver.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_preflight_worktree.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_select_converge_pacer.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_teardown_worktrees.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/test_write_handoff.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/scripts/write_handoff.py +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/state-schema.md +0 -0
- /package/{skills → .agents/skills}/_shared/pr-loop/worker-spawn.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/SKILL.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/scripts/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/scripts/anthropic_plan_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/scripts/anthropic_plan_scripts_constants/validate_packet_constants.py +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/scripts/test_validate_packet.py +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/scripts/validate_packet.py +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/templates/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/templates/README.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/templates/build-prompt.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/templates/reuse-audit.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/templates/source-map.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/templates/visual-plan.template.html +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/workflow/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/workflow/plan-packet.contract.test.mjs +0 -0
- /package/{skills → .agents/skills}/anthropic-plan/workflow/plan-packet.mjs +0 -0
- /package/{skills → .agents/skills}/auditing-claude-config/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/auditing-claude-config/SKILL.md +0 -0
- /package/{skills → .agents/skills}/auditing-claude-config/reference/probe-hook.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/SKILL.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/closing-report.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/convergence.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/copilot-findings.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/gotchas.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/headless-safety.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/multi-pr.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/self-closing-loop.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/reference/stop-conditions.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/test_portable_pacer_gate.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/aggregate_runs.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/autoconverge_report_constants/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/autoconverge_report_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/autoconverge_report_constants/render_report_constants.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.clean-audit.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.codex-gate.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.contract.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.copilot-gate.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.fix-progress.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.fix-recovery.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.merge-conflict.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.p2-advance.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.path-aware.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.precatch.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge.run-input.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge_multi.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/converge_multi.run-input.test.mjs +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/convergence_summary.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a11d903476b803493.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a26213978adeef6fb.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a3def0d15ed9d9110.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a41f41b1b708ee3b7.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a758b880abecc3ff7.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a8897b89656b1bd16.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-ab1c2d3e4f5a6b7c8.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-abd463d744a1437bc.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-ad19d027ae8ee1816.jsonl +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/fixtures/wf_run/workflows/wf_881252e6-700.json +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/render_report.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/test_aggregate_runs.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/test_convergence_summary.py +0 -0
- /package/{skills → .agents/skills}/autoconverge/workflow/test_render_report.py +0 -0
- /package/{skills → .agents/skills}/beat-sheet/SKILL.md +0 -0
- /package/{skills → .agents/skills}/beat-sheet/reference/visual-beats.md +0 -0
- /package/{skills → .agents/skills}/bugteam/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/CONSTRAINTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/EXAMPLES.md +0 -0
- /package/{skills → .agents/skills}/bugteam/PROMPTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/SKILL.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/README.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/audit-and-teammates.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/copilot-gap-analysis.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/design-rationale.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/github-pr-reviews.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/audit-assign-ids.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/audit-capture-excerpts.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/audit-walk-categories.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/audit-write-xml.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-append-summary.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-apply-fixes.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-git-add-commit.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-git-push.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-post-reply.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-publish-summary.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-py-compile.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-read-files.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-resolve-thread.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-test-suite.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-violation-count.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/obstacles/fix-write-xml.md +0 -0
- /package/{skills → .agents/skills}/bugteam/reference/team-setup.md +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/README.md +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/bugteam_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/bugteam_scripts_constants/probe_code_rules_enforcer_check_constants.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/bugteam_scripts_constants/reflow_skill_md_constants.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/bugteam_scripts_constants/windows_safe_rmtree_constants.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/probe_code_rules_enforcer_check.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/test_bugteam_code_rules_gate.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/test_bugteam_fix_hookspath.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/test_bugteam_preflight.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/test_probe_code_rules_enforcer_check.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/test_windows_safe_rmtree.py +0 -0
- /package/{skills → .agents/skills}/bugteam/scripts/windows_safe_rmtree.py +0 -0
- /package/{skills → .agents/skills}/bugteam/sources.md +0 -0
- /package/{skills → .agents/skills}/bugteam/test_skill_additions.py +0 -0
- /package/{skills → .agents/skills}/closeout/SKILL.md +0 -0
- /package/{skills → .agents/skills}/closeout/reference/handoff-prompt-template.md +0 -0
- /package/{skills → .agents/skills}/closeout/reference/pii-redaction-checklist.md +0 -0
- /package/{skills → .agents/skills}/codex-review/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/codex-review/SKILL.md +0 -0
- /package/{skills → .agents/skills}/codex-review/reference/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/codex-review/reference/cli-contract.md +0 -0
- /package/{skills → .agents/skills}/codex-review/reference/loop-integration.md +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_down_classifier.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_review_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_review_scripts_constants/classifier_constants.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_review_scripts_constants/codex_usage_probe_constants.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_review_scripts_constants/findings_constants.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/codex_review_scripts_constants/run_constants.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/auth_failure_synthetic.txt +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/config_load_failure_v0.125.0.txt +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/freeform_findings_v0.144.3.txt +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/model_rejection_v0.125.0.jsonl +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/structured_findings.txt +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/success_stream_v0.144.3.jsonl +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/unknown_failure_synthetic.txt +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/fixtures/usage_limit_synthetic.txt +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/parse_codex_findings.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/test_codex_down_classifier.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/test_codex_usage_probe.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/test_parse_codex_findings.py +0 -0
- /package/{skills → .agents/skills}/codex-review/scripts/test_run_codex_review.py +0 -0
- /package/{skills → .agents/skills}/comments/SKILL.md +0 -0
- /package/{skills → .agents/skills}/condensing-instructions/SKILL.md +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/SKILL.md +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/reference/tier-rubric.md +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/scripts/conftest.py +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/scripts/copilot_finding_triage_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/scripts/copilot_finding_triage_constants/config/__init__.py +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/scripts/copilot_finding_triage_constants/config/notify_ntfy_constants.py +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/scripts/notify_ntfy.py +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/scripts/test_notify_ntfy.py +0 -0
- /package/{skills → .agents/skills}/copilot-finding-triage/templates/notification.md +0 -0
- /package/{skills → .agents/skills}/copilot-review/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/copilot-review/SKILL.md +0 -0
- /package/{skills → .agents/skills}/copilot-review/templates/subagent-prompt.md +0 -0
- /package/{skills → .agents/skills}/descriptions/SKILL.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/SKILL.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/reference/fix.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/reference/loop.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/reference/low.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/reference/medium.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/reference/runner-selection.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/reference/xhigh.md +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/config/e_code_review_effort_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/config/e_code_review_effort_constants/effort_constants.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/e_code_review_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/e_code_review_scripts_constants/finding_pipeline_constants.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/e_code_review_scripts_constants/grok_code_review_constants.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/effort_defaults_evidence.json +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/effort_evaluation.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/finding_pipeline.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/fixtures/demanding.json +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/fixtures/easy.json +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/fixtures/medium.json +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/grok_code_review.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/test_effort_evaluation.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/test_finding_pipeline.py +0 -0
- /package/{skills → .agents/skills}/e-code-review/scripts/test_grok_code_review.py +0 -0
- /package/{skills → .agents/skills}/e-simplify/SKILL.md +0 -0
- /package/{skills → .agents/skills}/emergencies/SKILL.md +0 -0
- /package/{skills → .agents/skills}/everything-search/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/everything-search/SKILL.md +0 -0
- /package/{skills → .agents/skills}/fresh-branch/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/fresh-branch/SKILL.md +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/create_fresh_branch.py +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/fresh_branch_git_commands.py +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/fresh_branch_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/fresh_branch_scripts_constants/fresh_branch_cli_constants.py +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/pytest.ini +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/test_create_fresh_branch.py +0 -0
- /package/{skills → .agents/skills}/fresh-branch/scripts/test_fresh_branch_git_commands.py +0 -0
- /package/{skills → .agents/skills}/grok-spawn/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/grok-spawn/SKILL.md +0 -0
- /package/{skills → .agents/skills}/grok-spawn/reference/flag-profiles.md +0 -0
- /package/{skills → .agents/skills}/grok-spawn/reference/worker-briefs.md +0 -0
- /package/{skills → .agents/skills}/grokify/SKILL.md +0 -0
- /package/{skills → .agents/skills}/grokify/capability-claims.test.mjs +0 -0
- /package/{skills → .agents/skills}/grokify/evals/parse-payload.test.mjs +0 -0
- /package/{skills → .agents/skills}/grokify/evals/run-capability-evals.mjs +0 -0
- /package/{skills → .agents/skills}/grokify/templates/handoff-template.md +0 -0
- /package/{skills → .agents/skills}/issue-tracker/SKILL.md +0 -0
- /package/{skills → .agents/skills}/issue-tracker/reference/epic-and-sub-issue-model.md +0 -0
- /package/{skills → .agents/skills}/issue-tracker/reference/handoff-schema.md +0 -0
- /package/{skills → .agents/skills}/issue-tracker/reference/operation-matrix.md +0 -0
- /package/{skills → .agents/skills}/orchestrator/SKILL.md +0 -0
- /package/{skills → .agents/skills}/orchestrator/scripts/status_gate.py +0 -0
- /package/{skills → .agents/skills}/orchestrator/scripts/status_gate_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/orchestrator/scripts/status_gate_constants/config/__init__.py +0 -0
- /package/{skills → .agents/skills}/orchestrator/scripts/status_gate_constants/config/constants.py +0 -0
- /package/{skills → .agents/skills}/orchestrator/scripts/test_status_gate.py +0 -0
- /package/{skills → .agents/skills}/orchestrator-refresh/SKILL.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/SKILL.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/final-validation-tasks.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/model-routing.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/packet-contract.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/packet-schema.json +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/process-inventory.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/review-loop.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/run-record.schema.json +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/self-audit-tasks.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/task-seeds.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/reference/task-ticket.md +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/config/__init__.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/config/constants.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/create_packet.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/load_skill_constants.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/test_create_packet.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/test_validate_packet.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/test_validate_protocol.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/test_validate_run.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/validate_packet.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/validate_protocol.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/scripts/validate_run.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/test_skill_contract.py +0 -0
- /package/{skills → .agents/skills}/plan-to-pr/test_task_ticket_contract.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/SKILL.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/pr_converge_skill_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/convergence-gates.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/examples.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/fix-protocol.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/ground-rules.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/multi-pr-orchestration.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-post-replies.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-publish-summary.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-push.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-read-filelines.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-reset-state.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-resolve-threads.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-spawn-clean-coder.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-stage-commit.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-trigger-bugbot.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/obstacles/fix-write-test.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/per-tick.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/progress-checklist.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/state-schema.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/reference/stop-conditions.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/README.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/caller-window-pid.ps1 +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/check_bugbot_ci.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/check_convergence.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/check_convergence_availability.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/check_convergence_gates.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/check_convergence_thread_gates.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/check_pending_reviews.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/conftest.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/cursor-agents-continue-caller.cmd +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/cursor-agents-continue-stop-others.ps1 +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/cursor-agents-continue.ahk +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/cursor-agents-continue.cmd +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/fetch_copilot_reviews.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/post_fix_reply.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/pr_converge_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/pr_converge_scripts_constants/convergence_gate_constants.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/pr_converge_scripts_constants/pr_converge_constants.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/pr_converge_scripts_constants/reflow_skill_md_constants.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_bugbot_ci.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence_availability.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence_codex.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence_contract.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence_fixture.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence_gates.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_check_convergence_thread_gates.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_cursor_agents_continue.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/scripts/test_reflow_skill_md.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/test_portable_pacer_gate.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/test_step5_host_branch.py +0 -0
- /package/{skills → .agents/skills}/pr-converge/workflows/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/pr-converge/workflows/schedule-wakeup-loop.md +0 -0
- /package/{skills → .agents/skills}/pr-fix-protocol/SKILL.md +0 -0
- /package/{skills → .agents/skills}/pr-loop-cloud-transport/SKILL.md +0 -0
- /package/{skills → .agents/skills}/pr-loop-cloud-transport/reference/identity-and-hooks.md +0 -0
- /package/{skills → .agents/skills}/pr-loop-cloud-transport/reference/substitution-matrix.md +0 -0
- /package/{skills → .agents/skills}/pr-loop-lifecycle/SKILL.md +0 -0
- /package/{skills → .agents/skills}/pr-loop-lifecycle/reference/teardown-publish-permissions.md +0 -0
- /package/{skills → .agents/skills}/privacy-hygiene/SKILL.md +0 -0
- /package/{skills → .agents/skills}/privacy-hygiene/reference/sweep-procedure.md +0 -0
- /package/{skills → .agents/skills}/prototype/SKILL.md +0 -0
- /package/{skills → .agents/skills}/prototype/reference/honest-limitations.md +0 -0
- /package/{skills → .agents/skills}/prototype/reference/promotion-tasks.md +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/build_sandbox_settings.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/conftest.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/launch_sandbox.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/probe_sandbox_safety.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/prototype_scripts_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/prototype_scripts_constants/config/__init__.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/prototype_scripts_constants/config/build_sandbox_settings_constants.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/prototype_scripts_constants/config/launch_sandbox_constants.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/prototype_scripts_constants/config/probe_sandbox_safety_constants.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/prototype_scripts_constants/config/prototype_common_constants.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/test_build_sandbox_settings.py +0 -0
- /package/{skills → .agents/skills}/prototype/scripts/test_launch_sandbox.py +0 -0
- /package/{skills → .agents/skills}/prototype/workflows/promotion.md +0 -0
- /package/{skills → .agents/skills}/prototype/workflows/sandbox.md +0 -0
- /package/{skills → .agents/skills}/rebase/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/rebase/SKILL.md +0 -0
- /package/{skills → .agents/skills}/recall/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/recall/SKILL.md +0 -0
- /package/{skills → .agents/skills}/release-notes-html/SKILL.md +0 -0
- /package/{skills → .agents/skills}/remember/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/remember/SKILL.md +0 -0
- /package/{skills → .agents/skills}/reviewer-gates/SKILL.md +0 -0
- /package/{skills → .agents/skills}/reviews/SKILL.md +0 -0
- /package/{skills → .agents/skills}/session-log/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/session-log/SKILL.md +0 -0
- /package/{skills → .agents/skills}/session-log/templates/frontmatter.md +0 -0
- /package/{skills → .agents/skills}/session-tidy/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/session-tidy/SKILL.md +0 -0
- /package/{skills → .agents/skills}/show/SKILL.md +0 -0
- /package/{skills → .agents/skills}/show/references/accessibility.md +0 -0
- /package/{skills → .agents/skills}/show/references/art.md +0 -0
- /package/{skills → .agents/skills}/show/references/charts.md +0 -0
- /package/{skills → .agents/skills}/show/references/core-design.md +0 -0
- /package/{skills → .agents/skills}/show/references/erds.md +0 -0
- /package/{skills → .agents/skills}/show/references/flowcharts.md +0 -0
- /package/{skills → .agents/skills}/show/references/host-and-html.md +0 -0
- /package/{skills → .agents/skills}/show/references/illustrative-diagrams.md +0 -0
- /package/{skills → .agents/skills}/show/references/interaction.md +0 -0
- /package/{skills → .agents/skills}/show/references/mockups.md +0 -0
- /package/{skills → .agents/skills}/show/references/quality-gates.md +0 -0
- /package/{skills → .agents/skills}/show/references/structural-diagrams.md +0 -0
- /package/{skills → .agents/skills}/show/references/subject-inventory.md +0 -0
- /package/{skills → .agents/skills}/show/references/svg-contract.md +0 -0
- /package/{skills → .agents/skills}/show/routing.yaml +0 -0
- /package/{skills → .agents/skills}/show/samples/pr1262-v2.svg +0 -0
- /package/{skills → .agents/skills}/show/scripts/README.md +0 -0
- /package/{skills → .agents/skills}/show/scripts/validate-artifact.py +0 -0
- /package/{skills → .agents/skills}/show/scripts/validate-package.py +0 -0
- /package/{skills → .agents/skills}/show/templates/html-widget.html +0 -0
- /package/{skills → .agents/skills}/show/templates/svg-base.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/css-var.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/dead-ref.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/filled-glyph.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/inherited-fill.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/invalid.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/large-canvas.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/unfilled-connector.svg +0 -0
- /package/{skills → .agents/skills}/show/tests/fixtures/valid.html +0 -0
- /package/{skills → .agents/skills}/show/tests/test_validate-artifact.py +0 -0
- /package/{skills → .agents/skills}/show/tests/test_validators.py +0 -0
- /package/{skills → .agents/skills}/show/workflows/create-visual.md +0 -0
- /package/{skills → .agents/skills}/show/workflows/review-visual.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/SKILL.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/delegation-map.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/description-field.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/progressive-disclosure.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/self-audit-checklist.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/skill-modularity.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/skill-types.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/references/thariq-x-post-skills.json +0 -0
- /package/{skills → .agents/skills}/skill-builder/templates/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/templates/gap-analysis.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/workflows/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/workflows/improve-skill.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/workflows/new-skill.md +0 -0
- /package/{skills → .agents/skills}/skill-builder/workflows/polish-skill.md +0 -0
- /package/{skills → .agents/skills}/small-cl/SKILL.md +0 -0
- /package/{skills → .agents/skills}/split-pr/SKILL.md +0 -0
- /package/{skills → .agents/skills}/split-pr/reference/path-layers.md +0 -0
- /package/{skills → .agents/skills}/split-pr/reference/split-further-loop.md +0 -0
- /package/{skills → .agents/skills}/split-pr/reference/splitting-principles.md +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/analyze_pr.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/categorize_files.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/config/__init__.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/config/dependency_constants.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/config/git_operations_constants.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/config/packing_constants.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/config/plan_constants.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/config/split_pr_constants.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/execute_split_slices.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/pack_files_into_slices.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_dependency_graph.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_git_operations.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_layer_order.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_paginate.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_process_runner.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_script_types.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/split_pr_title.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_analyze_pr.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_categorize_files.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_categorize_files_packing.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_execute_split_slices.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_split_pr_dependency_graph.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_split_pr_git_operations.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_split_pr_layer_order.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_split_pr_paginate.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_split_pr_script_types.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_split_pr_title.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_verify_dependency_graph.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_verify_plan.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_verify_plan_contract.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/test_verify_plan_path_normalization.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/verify_dependency_graph.py +0 -0
- /package/{skills → .agents/skills}/split-pr/scripts/verify_plan.py +0 -0
- /package/{skills → .agents/skills}/task-build/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/task-build/SKILL.md +0 -0
- /package/{skills → .agents/skills}/task-build/reference/tool-routing.md +0 -0
- /package/{skills → .agents/skills}/team-advisor/SKILL.md +0 -0
- /package/{skills → .agents/skills}/team-advisor/reference/advisor-docs-review.md +0 -0
- /package/{skills → .agents/skills}/update/AGENTS.md +0 -0
- /package/{skills → .agents/skills}/update/SKILL.md +0 -0
- /package/{skills → .agents/skills}/usage-pause/SKILL.md +0 -0
- /package/{skills → .agents/skills}/usage-pause/scripts/resolve_usage_window.py +0 -0
- /package/{skills → .agents/skills}/usage-pause/scripts/test_resolve_usage_window.py +0 -0
- /package/{skills → .agents/skills}/usage-pause/scripts/usage_pause_constants/__init__.py +0 -0
- /package/{skills → .agents/skills}/usage-pause/scripts/usage_pause_constants/resolve_usage_window_constants.py +0 -0
|
@@ -27,7 +27,7 @@ def _load_enforcer_module() -> ModuleType:
|
|
|
27
27
|
code_rules_enforcer = _load_enforcer_module()
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
PRODUCTION_FILE_PATH = "packages/claude-dev-env/skills/example/workflow/example_render.py"
|
|
30
|
+
PRODUCTION_FILE_PATH = "packages/claude-dev-env/.agents/skills/example/workflow/example_render.py"
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
def test_check_magic_values_should_flag_short_sha_slice_bound() -> None:
|
|
@@ -37,7 +37,7 @@ def test_should_treat_backslash_repo_relative_hook_path_as_hook_infrastructure()
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
def test_should_not_treat_unrelated_repo_relative_path_as_hook_infrastructure() -> None:
|
|
40
|
-
relative_source_path = "packages/claude-dev-env/skills/bugteam/scripts/runner.py"
|
|
40
|
+
relative_source_path = "packages/claude-dev-env/.agents/skills/bugteam/scripts/runner.py"
|
|
41
41
|
assert code_rules_enforcer.is_hook_infrastructure(relative_source_path) is False
|
|
42
42
|
|
|
43
43
|
|
|
@@ -12,7 +12,7 @@ from code_rules_js_conventions import ( # noqa: E402
|
|
|
12
12
|
check_js_boolean_naming,
|
|
13
13
|
)
|
|
14
14
|
|
|
15
|
-
CONVERGE_PATH = "packages/claude-dev-env/skills/autoconverge/workflow/converge.mjs"
|
|
15
|
+
CONVERGE_PATH = "packages/claude-dev-env/.agents/skills/autoconverge/workflow/converge.mjs"
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def test_flags_unprefixed_boolean_let_declaration() -> None:
|
|
@@ -18,7 +18,7 @@ import sys
|
|
|
18
18
|
|
|
19
19
|
_PACKAGE_ROOT = pathlib.Path(__file__).resolve().parents[2]
|
|
20
20
|
_SHIPPED_CONVERGE_MJS = (
|
|
21
|
-
_PACKAGE_ROOT / "skills" / "autoconverge" / "workflow" / "converge.mjs"
|
|
21
|
+
_PACKAGE_ROOT / ".agents" / "skills" / "autoconverge" / "workflow" / "converge.mjs"
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
_HOOK_DIRECTORY = pathlib.Path(__file__).parent
|
|
@@ -35,7 +35,7 @@ check_js_returns_object_schemaless_branch = (
|
|
|
35
35
|
_MJS_PATH = "skills/autoconverge/workflow/converge.mjs"
|
|
36
36
|
|
|
37
37
|
_SHIPPED_CONVERGE_MJS = (
|
|
38
|
-
_HOOK_DIRECTORY.parents[1] / "skills" / "autoconverge" / "workflow" / "converge.mjs"
|
|
38
|
+
_HOOK_DIRECTORY.parents[1] / ".agents" / "skills" / "autoconverge" / "workflow" / "converge.mjs"
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
|
|
@@ -34,7 +34,7 @@ check_js_sibling_return_object_key_drift = (
|
|
|
34
34
|
_MJS_PATH = "skills/autoconverge/workflow/converge_multi.mjs"
|
|
35
35
|
|
|
36
36
|
_SHIPPED_CONVERGE_MJS = (
|
|
37
|
-
_HOOK_DIRECTORY.parents[1] / "skills" / "autoconverge" / "workflow" / "converge.mjs"
|
|
37
|
+
_HOOK_DIRECTORY.parents[1] / ".agents" / "skills" / "autoconverge" / "workflow" / "converge.mjs"
|
|
38
38
|
)
|
|
39
39
|
|
|
40
40
|
_SHIPPED_INSTALL_MYPY_INI_MJS = (
|
|
@@ -144,7 +144,7 @@ def test_path_exempts_existing_session_env_cleanup_definition_site() -> None:
|
|
|
144
144
|
|
|
145
145
|
def test_path_exempts_existing_teardown_worktrees_definition_site() -> None:
|
|
146
146
|
assert path_is_exempt(
|
|
147
|
-
"packages/claude-dev-env/skills/_shared/pr-loop/scripts/teardown_worktrees.py"
|
|
147
|
+
"packages/claude-dev-env/.agents/skills/_shared/pr-loop/scripts/teardown_worktrees.py"
|
|
148
148
|
)
|
|
149
149
|
|
|
150
150
|
|
|
@@ -74,7 +74,7 @@ _ADVISOR_WARM_UP_TEXT = (_ADVISOR_REFERENCE_DIR / "warm-up.md").read_text(
|
|
|
74
74
|
)
|
|
75
75
|
_ALL_CONSUMING_SKILL_NAMES = ("team-advisor", "orchestrator", "orchestrator-refresh")
|
|
76
76
|
_ALL_CONSUMING_SKILL_PATHS = tuple(
|
|
77
|
-
_PACKAGE_ROOT / "skills" / each_skill_name / "SKILL.md"
|
|
77
|
+
_PACKAGE_ROOT / ".agents" / "skills" / each_skill_name / "SKILL.md"
|
|
78
78
|
for each_skill_name in _ALL_CONSUMING_SKILL_NAMES
|
|
79
79
|
)
|
|
80
80
|
_skill_pin_ids = _ALL_CONSUMING_SKILL_NAMES
|
|
@@ -16,7 +16,7 @@ HOOKS_DIRECTORY = BLOCKING_DIRECTORY.parent
|
|
|
16
16
|
if str(HOOKS_DIRECTORY) not in sys.path:
|
|
17
17
|
sys.path.insert(0, str(HOOKS_DIRECTORY))
|
|
18
18
|
|
|
19
|
-
SKILL_SCRIPTS = HOOKS_DIRECTORY.parent / "skills" / "orchestrator" / "scripts"
|
|
19
|
+
SKILL_SCRIPTS = HOOKS_DIRECTORY.parent / ".agents" / "skills" / "orchestrator" / "scripts"
|
|
20
20
|
if str(SKILL_SCRIPTS) not in sys.path:
|
|
21
21
|
sys.path.insert(0, str(SKILL_SCRIPTS))
|
|
22
22
|
|
|
@@ -34,11 +34,20 @@ DENY_REASON_TEMPLATE = (
|
|
|
34
34
|
CALLING_HOOK_NAME = "orchestrator_refresh_reschedule_gate.py"
|
|
35
35
|
HOOK_EVENT_NAME = "PreToolUse"
|
|
36
36
|
|
|
37
|
+
ALL_PACKAGE_AGENTS_SKILL_SCRIPTS_RELATIVE_PARTS: tuple[str, ...] = (
|
|
38
|
+
".agents",
|
|
39
|
+
"skills",
|
|
40
|
+
"orchestrator",
|
|
41
|
+
"scripts",
|
|
42
|
+
)
|
|
43
|
+
"""Package-source path of orchestrator status_gate.py under the agents home."""
|
|
44
|
+
|
|
37
45
|
ALL_SKILL_SCRIPTS_RELATIVE_PARTS: tuple[str, ...] = (
|
|
38
46
|
"skills",
|
|
39
47
|
"orchestrator",
|
|
40
48
|
"scripts",
|
|
41
49
|
)
|
|
50
|
+
"""Package-root path of orchestrator status_gate.py for a dependency layout."""
|
|
42
51
|
PLUGIN_ROOT_ENV_VAR = "CLAUDE_PLUGIN_ROOT"
|
|
43
52
|
ALL_HOME_SKILLS_RELATIVE_PARTS: tuple[str, ...] = (
|
|
44
53
|
".claude",
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
"rules",
|
|
5
5
|
"docs",
|
|
6
6
|
"commands",
|
|
7
|
-
"agents",
|
|
7
|
+
".agents",
|
|
8
8
|
"output-styles",
|
|
9
|
-
"skills",
|
|
10
9
|
"hooks",
|
|
11
10
|
"system-prompts",
|
|
12
11
|
"scripts",
|
|
@@ -15,7 +14,7 @@
|
|
|
15
14
|
],
|
|
16
15
|
"root_files": [
|
|
17
16
|
"AGENTS.md",
|
|
18
|
-
"CLAUDE.md",
|
|
17
|
+
".claude/CLAUDE.md",
|
|
19
18
|
"codex-capability-map.json",
|
|
20
19
|
"installable-surfaces.manifest.json"
|
|
21
20
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-dev-env",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"description": "Claude Code development standards — rules, hooks, agents, commands, and skills",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -8,16 +8,15 @@
|
|
|
8
8
|
"codex-compat": "bin/codex-compat.mjs"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"test": "node --test \"bin/*.test.mjs\" \"
|
|
11
|
+
"test": "node --test \"bin/*.test.mjs\" \".agents/skills/**/*.test.mjs\" \"tests/fresh-session/**/*.test.mjs\""
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
14
|
"bin/",
|
|
15
15
|
"rules/",
|
|
16
16
|
"docs/",
|
|
17
17
|
"commands/",
|
|
18
|
-
"agents/",
|
|
18
|
+
".agents/",
|
|
19
19
|
"output-styles/",
|
|
20
|
-
"skills/",
|
|
21
20
|
"hooks/",
|
|
22
21
|
"system-prompts/",
|
|
23
22
|
"scripts/",
|
|
@@ -28,7 +27,7 @@
|
|
|
28
27
|
"audit-rubrics/",
|
|
29
28
|
"codex-rules/",
|
|
30
29
|
"AGENTS.md",
|
|
31
|
-
"CLAUDE.md",
|
|
30
|
+
".claude/CLAUDE.md",
|
|
32
31
|
"!**/__pycache__/**",
|
|
33
32
|
"!**/*.py[cod]",
|
|
34
33
|
"!**/.pytest_cache/**",
|
package/scripts/AGENTS.md
CHANGED
|
@@ -37,7 +37,6 @@ Utility scripts installed into `~/.claude/scripts/` by `bin/install.mjs`. Each s
|
|
|
37
37
|
|---|---|
|
|
38
38
|
| `ci/` | CI-only adapters; `windows-installer-lifecycle.ps1` runs the Node installer 16-check driver under isolated HOME/USERPROFILE/GIT_CONFIG_GLOBAL and writes bounded evidence |
|
|
39
39
|
| `dev_env_scripts_constants/` | Named constants (`timing.py`, `grok_worker_constants.py`, …) for scripts in this directory, including worker-advisor placeholder launcher/model/effort, four verdict signals, correction cap, and advisor timeout |
|
|
40
|
-
| `profile-isolation-launchers/` | Profile-launcher contract plus MCP activation, Windows shortcut source semantics, and version preflight: profiles manifest, shared-path allowlist, profile resolver, `CLAUDE_CONFIG_DIR` authority, lean/full MCP bundle materialization into profile `mcp.json`, pure CLI/Desktop version-compatibility classifier consumed by launcher preflight, read-only shortcut inventory and preview reconcile under `windows/`. Live launcher execution, provenance pin, live shortcut mutation, and L1 deploy stay residual |
|
|
41
40
|
| `sync_to_cursor/` | Package that builds Cursor `.mdc` files from Claude rules and docs |
|
|
42
41
|
| `tests/` | pytest suite for the Python scripts and Pester (`*.Tests.ps1`) suite for the PowerShell scripts in this directory |
|
|
43
42
|
|
|
@@ -49,12 +48,6 @@ Python scripts (pytest):
|
|
|
49
48
|
python -m pytest packages/claude-dev-env/scripts/tests/
|
|
50
49
|
```
|
|
51
50
|
|
|
52
|
-
Profile-isolation launcher contract (node:test):
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
node --test packages/claude-dev-env/scripts/profile-isolation-launchers/**/*.test.mjs
|
|
56
|
-
```
|
|
57
|
-
|
|
58
51
|
PowerShell scripts (Pester 5+, `*.Tests.ps1`):
|
|
59
52
|
|
|
60
53
|
```powershell
|
|
@@ -28,6 +28,8 @@ from dev_env_scripts_constants.active_capability_constants import (
|
|
|
28
28
|
NEWLINE_JOIN_SEPARATOR,
|
|
29
29
|
PACKAGE_AGENTS_DIRECTORY,
|
|
30
30
|
PACKAGE_COMMANDS_DIRECTORY,
|
|
31
|
+
PACKAGE_ROOT_AGENTS_DIRECTORY,
|
|
32
|
+
PACKAGE_ROOT_SKILLS_DIRECTORY,
|
|
31
33
|
PACKAGE_SKILLS_DIRECTORY,
|
|
32
34
|
SKILL_MANIFEST_FILENAME,
|
|
33
35
|
SLASH_CAPABILITY_PATTERN,
|
|
@@ -58,6 +60,18 @@ class UnresolvedCapabilityReference:
|
|
|
58
60
|
reason: str
|
|
59
61
|
|
|
60
62
|
|
|
63
|
+
def _resolve_package_tree(
|
|
64
|
+
from_package_root: Path,
|
|
65
|
+
canonical_relative: str,
|
|
66
|
+
package_root_name: str,
|
|
67
|
+
) -> Path:
|
|
68
|
+
"""Return the canonical tree when it exists, else the package-root name."""
|
|
69
|
+
canonical_directory = from_package_root / canonical_relative
|
|
70
|
+
if canonical_directory.is_dir():
|
|
71
|
+
return canonical_directory
|
|
72
|
+
return from_package_root / package_root_name
|
|
73
|
+
|
|
74
|
+
|
|
61
75
|
def build_capability_inventory(from_package_root: Path) -> CapabilityInventory:
|
|
62
76
|
"""Build inventories from committed skill/agent/command files.
|
|
63
77
|
|
|
@@ -67,8 +81,16 @@ def build_capability_inventory(from_package_root: Path) -> CapabilityInventory:
|
|
|
67
81
|
Returns:
|
|
68
82
|
Inventory of basenames present on disk.
|
|
69
83
|
"""
|
|
70
|
-
skills_root =
|
|
71
|
-
|
|
84
|
+
skills_root = _resolve_package_tree(
|
|
85
|
+
from_package_root,
|
|
86
|
+
PACKAGE_SKILLS_DIRECTORY,
|
|
87
|
+
PACKAGE_ROOT_SKILLS_DIRECTORY,
|
|
88
|
+
)
|
|
89
|
+
agents_root = _resolve_package_tree(
|
|
90
|
+
from_package_root,
|
|
91
|
+
PACKAGE_AGENTS_DIRECTORY,
|
|
92
|
+
PACKAGE_ROOT_AGENTS_DIRECTORY,
|
|
93
|
+
)
|
|
72
94
|
commands_root = from_package_root / PACKAGE_COMMANDS_DIRECTORY
|
|
73
95
|
all_skills: set[str] = set()
|
|
74
96
|
if skills_root.is_dir():
|
|
@@ -203,12 +225,20 @@ def unresolved_active_capabilities(
|
|
|
203
225
|
|
|
204
226
|
def _default_markdown_paths(from_package_root: Path) -> list[str]:
|
|
205
227
|
all_paths: list[str] = []
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
228
|
+
directory_paths = [
|
|
229
|
+
_resolve_package_tree(
|
|
230
|
+
from_package_root,
|
|
231
|
+
PACKAGE_SKILLS_DIRECTORY,
|
|
232
|
+
PACKAGE_ROOT_SKILLS_DIRECTORY,
|
|
233
|
+
),
|
|
234
|
+
_resolve_package_tree(
|
|
235
|
+
from_package_root,
|
|
236
|
+
PACKAGE_AGENTS_DIRECTORY,
|
|
237
|
+
PACKAGE_ROOT_AGENTS_DIRECTORY,
|
|
238
|
+
),
|
|
239
|
+
from_package_root / PACKAGE_COMMANDS_DIRECTORY,
|
|
240
|
+
]
|
|
241
|
+
for directory_path in directory_paths:
|
|
212
242
|
if not directory_path.is_dir():
|
|
213
243
|
continue
|
|
214
244
|
for each_markdown_file in directory_path.rglob("*.md"):
|
|
@@ -48,7 +48,9 @@ import os
|
|
|
48
48
|
import subprocess
|
|
49
49
|
import sys
|
|
50
50
|
import tempfile
|
|
51
|
-
|
|
51
|
+
import threading
|
|
52
|
+
from collections.abc import Callable, Iterator, Sequence
|
|
53
|
+
from contextlib import contextmanager
|
|
52
54
|
from dataclasses import dataclass, field
|
|
53
55
|
from pathlib import Path
|
|
54
56
|
from types import ModuleType
|
|
@@ -327,6 +329,35 @@ class WeeklyUsageAccountReport(Protocol):
|
|
|
327
329
|
|
|
328
330
|
|
|
329
331
|
chain_subprocess_runner = _run_captured_subprocess
|
|
332
|
+
_shared_chain_subprocess_lock = threading.Lock()
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def chain_subprocess_runner_lock() -> threading.Lock:
|
|
336
|
+
"""Return the lock for adapters that temporarily configure the runner."""
|
|
337
|
+
return _shared_chain_subprocess_lock
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
@contextmanager
|
|
341
|
+
def override_chain_subprocess_runner(
|
|
342
|
+
replacement_runner: Callable[..., subprocess.CompletedProcess[str]],
|
|
343
|
+
) -> Iterator[Callable[..., subprocess.CompletedProcess[str]]]:
|
|
344
|
+
"""Temporarily replace the chain subprocess seam under its shared lock.
|
|
345
|
+
|
|
346
|
+
Args:
|
|
347
|
+
replacement_runner: Callable used for subprocess invocations during the
|
|
348
|
+
context.
|
|
349
|
+
|
|
350
|
+
Yields:
|
|
351
|
+
The runner that was active before the replacement.
|
|
352
|
+
"""
|
|
353
|
+
global chain_subprocess_runner
|
|
354
|
+
with chain_subprocess_runner_lock():
|
|
355
|
+
previous_runner = chain_subprocess_runner
|
|
356
|
+
chain_subprocess_runner = replacement_runner
|
|
357
|
+
try:
|
|
358
|
+
yield previous_runner
|
|
359
|
+
finally:
|
|
360
|
+
chain_subprocess_runner = previous_runner
|
|
330
361
|
|
|
331
362
|
|
|
332
363
|
def _load_chain_usage_module() -> ModuleType:
|
|
@@ -1138,6 +1169,22 @@ def _persist_served_affinity(
|
|
|
1138
1169
|
return
|
|
1139
1170
|
|
|
1140
1171
|
|
|
1172
|
+
def _run_cli_chain(
|
|
1173
|
+
all_claude_arguments: list[str],
|
|
1174
|
+
*,
|
|
1175
|
+
timeout_seconds: int,
|
|
1176
|
+
stdin_text: str | None,
|
|
1177
|
+
routing_mode: str,
|
|
1178
|
+
) -> ChainInvocationOutcome:
|
|
1179
|
+
"""Run the CLI-selected chain arguments through the public runner."""
|
|
1180
|
+
return run_claude(
|
|
1181
|
+
all_claude_arguments,
|
|
1182
|
+
timeout_seconds=timeout_seconds,
|
|
1183
|
+
stdin_text=stdin_text,
|
|
1184
|
+
routing_mode=routing_mode,
|
|
1185
|
+
)
|
|
1186
|
+
|
|
1187
|
+
|
|
1141
1188
|
def _build_argument_parser() -> argparse.ArgumentParser:
|
|
1142
1189
|
parser = argparse.ArgumentParser(
|
|
1143
1190
|
description="Run a claude invocation through the fallback chain."
|
|
@@ -1206,7 +1253,7 @@ def main(all_command_arguments: list[str]) -> int:
|
|
|
1206
1253
|
all_claude_arguments = _strip_leading_separator(parsed_arguments.passthrough)
|
|
1207
1254
|
maybe_stdin_text = _read_piped_stdin_text()
|
|
1208
1255
|
try:
|
|
1209
|
-
chain_outcome =
|
|
1256
|
+
chain_outcome = _run_cli_chain(
|
|
1210
1257
|
all_claude_arguments,
|
|
1211
1258
|
timeout_seconds=parsed_arguments.timeout_seconds,
|
|
1212
1259
|
stdin_text=maybe_stdin_text,
|
|
@@ -41,6 +41,7 @@ from dev_env_scripts_constants.claude_chain_usage_constants import (
|
|
|
41
41
|
RESOLVE_USAGE_WINDOW_FILENAME,
|
|
42
42
|
RESOLVE_USAGE_WINDOW_MISSING_ERROR_TEMPLATE,
|
|
43
43
|
RESOLVE_USAGE_WINDOW_MODULE_NAME,
|
|
44
|
+
USAGE_PAUSE_AGENTS_HOME_DIRECTORY_NAME,
|
|
44
45
|
USAGE_PAUSE_SCRIPTS_DIRECTORY_NAME,
|
|
45
46
|
USAGE_PAUSE_SKILL_DIRECTORY_NAME,
|
|
46
47
|
USAGE_PAUSE_SKILL_NAME,
|
|
@@ -83,6 +84,7 @@ def _usage_pause_scripts_directory() -> Path:
|
|
|
83
84
|
package_root = Path(__file__).resolve().parent.parent
|
|
84
85
|
return (
|
|
85
86
|
package_root
|
|
87
|
+
/ USAGE_PAUSE_AGENTS_HOME_DIRECTORY_NAME
|
|
86
88
|
/ USAGE_PAUSE_SKILL_DIRECTORY_NAME
|
|
87
89
|
/ USAGE_PAUSE_SKILL_NAME
|
|
88
90
|
/ USAGE_PAUSE_SCRIPTS_DIRECTORY_NAME
|
|
@@ -30,7 +30,7 @@ class _WatcherConfiguration:
|
|
|
30
30
|
copy_link_kind = "copy"
|
|
31
31
|
symlink_link_kind = "symlink"
|
|
32
32
|
junction_link_kind = "junction"
|
|
33
|
-
all_configured_root_names = ("agents", "commands", "hooks", "rules"
|
|
33
|
+
all_configured_root_names = (".agents", "commands", "hooks", "rules")
|
|
34
34
|
all_unsafe_event_kinds = {"overflow", "ambiguous", "inaccessible", "error", "unknown"}
|
|
35
35
|
reparse_point_attribute = getattr(stat, "FILE_ATTRIBUTE_REPARSE_POINT", 0x400)
|
|
36
36
|
|
|
@@ -6,9 +6,12 @@ timing.py and the other per-script constant modules.
|
|
|
6
6
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
PACKAGE_AGENTS_HOME_DIRECTORY: str = ".agents"
|
|
10
|
+
PACKAGE_SKILLS_DIRECTORY: str = ".agents/skills"
|
|
11
|
+
PACKAGE_AGENTS_DIRECTORY: str = ".agents/agents"
|
|
11
12
|
PACKAGE_COMMANDS_DIRECTORY: str = "commands"
|
|
13
|
+
PACKAGE_ROOT_SKILLS_DIRECTORY: str = "skills"
|
|
14
|
+
PACKAGE_ROOT_AGENTS_DIRECTORY: str = "agents"
|
|
12
15
|
SKILL_MANIFEST_FILENAME: str = "SKILL.md"
|
|
13
16
|
|
|
14
17
|
# Slash-command and skill names that must never appear as active instructions.
|
|
@@ -9,8 +9,11 @@ from __future__ import annotations
|
|
|
9
9
|
FULL_WEEKLY_PERCENT: float = 100.0
|
|
10
10
|
"""Percent scale ceiling for weekly utilization (remaining = this minus used)."""
|
|
11
11
|
|
|
12
|
+
USAGE_PAUSE_AGENTS_HOME_DIRECTORY_NAME: str = ".agents"
|
|
13
|
+
"""Package subdirectory that holds the canonical skill and agent source trees."""
|
|
14
|
+
|
|
12
15
|
USAGE_PAUSE_SKILL_DIRECTORY_NAME: str = "skills"
|
|
13
|
-
"""
|
|
16
|
+
"""Directory name under the agents home that holds skill trees."""
|
|
14
17
|
|
|
15
18
|
USAGE_PAUSE_SKILL_NAME: str = "usage-pause"
|
|
16
19
|
"""Skill directory name under ``skills/`` that owns the OAuth usage probe."""
|
|
@@ -28,20 +28,30 @@ import argparse
|
|
|
28
28
|
import json
|
|
29
29
|
import subprocess
|
|
30
30
|
import sys
|
|
31
|
-
import threading
|
|
32
31
|
from collections.abc import Callable, Sequence
|
|
33
32
|
from dataclasses import dataclass
|
|
34
33
|
from pathlib import Path
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
_scripts_directory_path = Path(__file__).resolve().parent
|
|
36
|
+
_scripts_directory = str(_scripts_directory_path)
|
|
37
|
+
sys.path[:] = [
|
|
38
|
+
each_existing_entry
|
|
39
|
+
for each_existing_entry in sys.path
|
|
40
|
+
if each_existing_entry != _scripts_directory
|
|
41
|
+
]
|
|
42
|
+
sys.path[:0] = [_scripts_directory]
|
|
38
43
|
|
|
39
44
|
_advisor_scripts_path = str(
|
|
40
|
-
|
|
45
|
+
_scripts_directory_path.parent / "_shared" / "advisor" / "scripts"
|
|
41
46
|
)
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
sys.path[:] = [
|
|
48
|
+
each_existing_entry
|
|
49
|
+
for each_existing_entry in sys.path
|
|
50
|
+
if each_existing_entry != _advisor_scripts_path
|
|
51
|
+
]
|
|
52
|
+
sys.path[:0] = [_advisor_scripts_path]
|
|
44
53
|
|
|
54
|
+
from tier_model_ids import detect_host_profile # noqa: E402
|
|
45
55
|
from advisor_scripts_constants.model_tier_run_validator_constants import ( # noqa: E402
|
|
46
56
|
HOST_PROFILE_CLAUDE,
|
|
47
57
|
)
|
|
@@ -93,14 +103,6 @@ from dev_env_scripts_constants.grok_worker_constants import ( # noqa: E402
|
|
|
93
103
|
from dev_env_scripts_constants.timing import ( # noqa: E402
|
|
94
104
|
DEFAULT_CODE_REVIEW_TIMEOUT_SECONDS,
|
|
95
105
|
)
|
|
96
|
-
from tier_model_ids import detect_host_profile # noqa: E402
|
|
97
|
-
|
|
98
|
-
_CHAIN_RUNNER_LOCK = threading.Lock()
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
def _chain_runner_lock() -> threading.Lock:
|
|
102
|
-
"""Return the module lock that serializes chain-runner stdin/cwd swaps."""
|
|
103
|
-
return _CHAIN_RUNNER_LOCK
|
|
104
106
|
|
|
105
107
|
|
|
106
108
|
@dataclass(frozen=True)
|
|
@@ -302,44 +304,39 @@ def _run_claude_with_empty_stdin(
|
|
|
302
304
|
working_directory: Path,
|
|
303
305
|
) -> ChainInvocationOutcome:
|
|
304
306
|
working_directory_path = str(working_directory)
|
|
305
|
-
with _CHAIN_RUNNER_LOCK:
|
|
306
|
-
previous_runner: TextCapturingSubprocessRunner = (
|
|
307
|
-
chain_runner.chain_subprocess_runner
|
|
308
|
-
)
|
|
309
307
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
setattr(chain_runner, "chain_subprocess_runner", previous_runner)
|
|
308
|
+
def _runner_with_empty_stdin(
|
|
309
|
+
all_invocation_tokens: Sequence[str],
|
|
310
|
+
*all_positionals: object,
|
|
311
|
+
**all_keywords: object,
|
|
312
|
+
) -> subprocess.CompletedProcess[str]:
|
|
313
|
+
del all_positionals
|
|
314
|
+
maybe_timeout = all_keywords.get("timeout")
|
|
315
|
+
timeout_for_run: float | None
|
|
316
|
+
if isinstance(maybe_timeout, (int, float)):
|
|
317
|
+
timeout_for_run = float(maybe_timeout)
|
|
318
|
+
else:
|
|
319
|
+
timeout_for_run = None
|
|
320
|
+
forwarded_text_codec = collect_forwarded_text_codec(all_keywords)
|
|
321
|
+
completed_process: subprocess.CompletedProcess[str] = previous_runner(
|
|
322
|
+
all_invocation_tokens,
|
|
323
|
+
capture_output=True,
|
|
324
|
+
text=True,
|
|
325
|
+
timeout=timeout_for_run,
|
|
326
|
+
check=False,
|
|
327
|
+
stdin=subprocess.DEVNULL,
|
|
328
|
+
cwd=working_directory_path,
|
|
329
|
+
**forwarded_text_codec,
|
|
330
|
+
)
|
|
331
|
+
return completed_process
|
|
332
|
+
|
|
333
|
+
empty_stdin_runner: TextCapturingSubprocessRunner = _runner_with_empty_stdin
|
|
334
|
+
with chain_runner.override_chain_subprocess_runner(
|
|
335
|
+
empty_stdin_runner
|
|
336
|
+
) as previous_runner:
|
|
337
|
+
return review_claude_runner(
|
|
338
|
+
all_claude_arguments, timeout_seconds=timeout_seconds
|
|
339
|
+
)
|
|
343
340
|
|
|
344
341
|
|
|
345
342
|
def _in_session_outcome() -> CodeReviewOutcome:
|
|
@@ -26,21 +26,31 @@ import argparse
|
|
|
26
26
|
import json
|
|
27
27
|
import subprocess
|
|
28
28
|
import sys
|
|
29
|
-
import threading
|
|
30
29
|
from collections.abc import Callable, Sequence
|
|
31
30
|
from dataclasses import dataclass
|
|
32
31
|
from pathlib import Path
|
|
33
32
|
from typing import IO
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
_scripts_directory_path = Path(__file__).resolve().parent
|
|
35
|
+
_scripts_directory = str(_scripts_directory_path)
|
|
36
|
+
sys.path[:] = [
|
|
37
|
+
each_existing_entry
|
|
38
|
+
for each_existing_entry in sys.path
|
|
39
|
+
if each_existing_entry != _scripts_directory
|
|
40
|
+
]
|
|
41
|
+
sys.path[:0] = [_scripts_directory]
|
|
37
42
|
|
|
38
43
|
_advisor_scripts_path = str(
|
|
39
|
-
|
|
44
|
+
_scripts_directory_path.parent / "_shared" / "advisor" / "scripts"
|
|
40
45
|
)
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
sys.path[:] = [
|
|
47
|
+
each_existing_entry
|
|
48
|
+
for each_existing_entry in sys.path
|
|
49
|
+
if each_existing_entry != _advisor_scripts_path
|
|
50
|
+
]
|
|
51
|
+
sys.path[:0] = [_advisor_scripts_path]
|
|
43
52
|
|
|
53
|
+
from tier_model_ids import detect_host_profile # noqa: E402
|
|
44
54
|
from advisor_scripts_constants.model_tier_run_validator_constants import ( # noqa: E402
|
|
45
55
|
HOST_PROFILE_CLAUDE,
|
|
46
56
|
)
|
|
@@ -94,14 +104,6 @@ from grok_headless_runner import ( # noqa: E402
|
|
|
94
104
|
run_headless_worker,
|
|
95
105
|
)
|
|
96
106
|
from grok_worker_preflight import PreflightOutcome, run_preflight # noqa: E402
|
|
97
|
-
from tier_model_ids import detect_host_profile # noqa: E402
|
|
98
|
-
|
|
99
|
-
_HEADLESS_CHAIN_RUNNER_LOCK = threading.Lock()
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
def _headless_chain_runner_lock() -> threading.Lock:
|
|
103
|
-
"""Return the module lock that serializes headless chain-runner swaps."""
|
|
104
|
-
return _HEADLESS_CHAIN_RUNNER_LOCK
|
|
105
107
|
|
|
106
108
|
|
|
107
109
|
@dataclass(frozen=True)
|
|
@@ -184,41 +186,34 @@ def _run_claude_with_headless_overrides(
|
|
|
184
186
|
prompt_stdin: IO[str],
|
|
185
187
|
) -> ChainInvocationOutcome:
|
|
186
188
|
working_directory_path = str(working_directory)
|
|
187
|
-
with _HEADLESS_CHAIN_RUNNER_LOCK:
|
|
188
|
-
previous_runner: TextCapturingSubprocessRunner = (
|
|
189
|
-
chain_runner.chain_subprocess_runner
|
|
190
|
-
)
|
|
191
189
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
190
|
+
def _runner_with_headless_overrides(
|
|
191
|
+
all_invocation_tokens: Sequence[str],
|
|
192
|
+
*all_positionals: object,
|
|
193
|
+
**all_keywords: object,
|
|
194
|
+
) -> subprocess.CompletedProcess[str]:
|
|
195
|
+
del all_positionals
|
|
196
|
+
prompt_stdin.seek(0)
|
|
197
|
+
forwarded_text_codec = collect_forwarded_text_codec(all_keywords)
|
|
198
|
+
completed_process: subprocess.CompletedProcess[str] = previous_runner(
|
|
199
|
+
all_invocation_tokens,
|
|
200
|
+
capture_output=True,
|
|
201
|
+
text=True,
|
|
202
|
+
timeout=_timeout_seconds_from_keywords(all_keywords),
|
|
203
|
+
check=False,
|
|
204
|
+
stdin=prompt_stdin,
|
|
205
|
+
cwd=working_directory_path,
|
|
206
|
+
**forwarded_text_codec,
|
|
207
|
+
)
|
|
208
|
+
return completed_process
|
|
209
|
+
|
|
210
|
+
headless_runner: TextCapturingSubprocessRunner = _runner_with_headless_overrides
|
|
211
|
+
with chain_runner.override_chain_subprocess_runner(
|
|
212
|
+
headless_runner
|
|
213
|
+
) as previous_runner:
|
|
214
|
+
return spawn_claude_runner(
|
|
215
|
+
all_claude_arguments, timeout_seconds=timeout_seconds
|
|
214
216
|
)
|
|
215
|
-
setattr(chain_runner, "chain_subprocess_runner", headless_runner)
|
|
216
|
-
try:
|
|
217
|
-
return spawn_claude_runner(
|
|
218
|
-
all_claude_arguments, timeout_seconds=timeout_seconds
|
|
219
|
-
)
|
|
220
|
-
finally:
|
|
221
|
-
setattr(chain_runner, "chain_subprocess_runner", previous_runner)
|
|
222
217
|
|
|
223
218
|
|
|
224
219
|
def _prompt_file_unreadable_outcome(
|