claude-dev-env 2.13.0 → 2.14.1
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.md +135 -0
- package/CLAUDE.md +1 -57
- package/_shared/AGENTS.md +15 -0
- package/_shared/CLAUDE.md +1 -15
- package/_shared/advisor/AGENTS.md +22 -0
- package/_shared/advisor/CLAUDE.md +1 -22
- package/_shared/pr-loop/AGENTS.md +27 -0
- package/_shared/pr-loop/CLAUDE.md +1 -27
- package/_shared/pr-loop/scripts/AGENTS.md +35 -0
- package/_shared/pr-loop/scripts/CLAUDE.md +1 -35
- package/_shared/pr-loop/scripts/code_rules_gate_parts/AGENTS.md +42 -0
- package/_shared/pr-loop/scripts/code_rules_gate_parts/CLAUDE.md +1 -42
- package/_shared/pr-loop/scripts/pr_loop_shared_constants/AGENTS.md +26 -0
- package/_shared/pr-loop/scripts/pr_loop_shared_constants/CLAUDE.md +1 -26
- package/_shared/pr-loop/scripts/tests/AGENTS.md +44 -0
- package/_shared/pr-loop/scripts/tests/CLAUDE.md +1 -44
- package/_shared/process-tree/AGENTS.md +41 -0
- package/_shared/process-tree/CLAUDE.md +1 -41
- package/agents/AGENTS.md +26 -0
- package/agents/CLAUDE.md +1 -31
- package/agents/clean-coder.md +6 -6
- package/agents/test_agent_frontmatter.py +11 -11
- package/audit-rubrics/AGENTS.md +43 -0
- package/audit-rubrics/CLAUDE.md +1 -43
- package/audit-rubrics/category_rubrics/AGENTS.md +37 -0
- package/audit-rubrics/category_rubrics/CLAUDE.md +1 -37
- package/audit-rubrics/prompts/AGENTS.md +37 -0
- package/audit-rubrics/prompts/CLAUDE.md +1 -37
- package/bin/AGENTS.md +112 -0
- package/bin/CLAUDE.md +1 -112
- package/bin/ever-shipped-skills.mjs +1 -0
- package/bin/install-constants.mjs +6 -7
- package/bin/install.mjs +24 -5
- package/bin/install.test.mjs +34 -0
- package/commands/AGENTS.md +13 -0
- package/commands/CLAUDE.md +1 -23
- package/docs/AGENTS.md +32 -0
- package/docs/CLAUDE.md +1 -32
- package/docs/CODE_RULES.md +1 -1
- package/docs/imagegen.md +22 -0
- package/docs/references/AGENTS.md +17 -0
- package/docs/references/CLAUDE.md +1 -17
- package/hooks/AGENTS.md +31 -0
- package/hooks/CLAUDE.md +1 -31
- package/hooks/_gh_pr_author_swap_utils.py +14 -0
- package/hooks/advisory/AGENTS.md +16 -0
- package/hooks/advisory/CLAUDE.md +1 -16
- package/hooks/blocking/AGENTS.md +123 -0
- package/hooks/blocking/CLAUDE.md +1 -123
- package/hooks/blocking/claude_md_orphan_file_blocker_parts/AGENTS.md +28 -0
- package/hooks/blocking/claude_md_orphan_file_blocker_parts/CLAUDE.md +1 -28
- package/hooks/blocking/code_rules_banned_identifiers.py +1 -1
- package/hooks/blocking/code_rules_dead_module_constant.py +149 -37
- package/hooks/blocking/code_rules_probe_chains.py +6 -2
- package/hooks/blocking/config/AGENTS.md +10 -0
- package/hooks/blocking/config/CLAUDE.md +1 -10
- package/hooks/blocking/gh_pr_author_restore.py +7 -2
- package/hooks/blocking/intent_only_ending_blocker.py +11 -16
- package/hooks/blocking/inventory_intent_records/AGENTS.md +26 -0
- package/hooks/blocking/inventory_intent_records/CLAUDE.md +1 -26
- package/hooks/blocking/package_inventory_stale_blocker_parts/AGENTS.md +26 -0
- package/hooks/blocking/package_inventory_stale_blocker_parts/CLAUDE.md +1 -26
- package/hooks/blocking/pii_prevention_blocker_parts/AGENTS.md +24 -0
- package/hooks/blocking/pii_prevention_blocker_parts/CLAUDE.md +1 -24
- package/hooks/blocking/tdd_enforcer_parts/AGENTS.md +30 -0
- package/hooks/blocking/tdd_enforcer_parts/CLAUDE.md +1 -30
- package/hooks/blocking/test_claude_md_orphan_file_blocker.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_banned_prefixes.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_dead_module_constant.py +171 -0
- package/hooks/blocking/test_code_rules_enforcer_magic_allowlist.py +1 -1
- package/hooks/blocking/test_gh_pr_author_restore.py +2 -1
- package/hooks/blocking/test_intent_only_ending_blocker.py +4 -0
- package/hooks/diagnostic/AGENTS.md +75 -0
- package/hooks/diagnostic/CLAUDE.md +1 -43
- package/hooks/diagnostic/hook_log_extractor.py +2 -2
- package/hooks/diagnostic/hook_log_init.py +2 -2
- package/hooks/diagnostic/migrations/AGENTS.md +16 -0
- package/hooks/diagnostic/migrations/CLAUDE.md +1 -16
- package/hooks/diagnostic/queries/AGENTS.md +19 -0
- package/hooks/diagnostic/queries/CLAUDE.md +1 -19
- package/hooks/diagnostic/test_hook_log_extractor.py +2 -2
- package/hooks/git-hooks/AGENTS.md +31 -0
- package/hooks/git-hooks/CLAUDE.md +1 -31
- package/hooks/git-hooks/git_hooks_constants/AGENTS.md +21 -0
- package/hooks/git-hooks/git_hooks_constants/CLAUDE.md +1 -21
- package/hooks/git-hooks/git_hooks_constants/__init__.py +4 -6
- package/hooks/git-hooks/pre_push.py +47 -34
- package/hooks/git-hooks/test_pre_push.py +111 -7
- package/hooks/hooks_constants/AGENTS.md +104 -0
- package/hooks/hooks_constants/CLAUDE.md +1 -104
- package/hooks/hooks_constants/hook_log_extractor_constants.py +1 -2
- package/hooks/hooks_constants/task_list_loop_starter_constants.py +4 -3
- package/hooks/hooks_constants/working_style_prompt_constants.py +29 -20
- package/hooks/lifecycle/AGENTS.md +18 -0
- package/hooks/lifecycle/CLAUDE.md +1 -18
- package/hooks/observability/AGENTS.md +20 -0
- package/hooks/observability/CLAUDE.md +1 -20
- package/hooks/session/AGENTS.md +33 -0
- package/hooks/session/CLAUDE.md +1 -33
- package/hooks/session/gh_pr_author_session_cleanup.py +7 -2
- package/hooks/session/task_list_loop_starter.py +3 -3
- package/hooks/session/test_gh_pr_author_session_cleanup.py +2 -1
- package/hooks/session/test_task_list_loop_starter.py +10 -2
- package/hooks/session/test_working_style_prompt.py +9 -4
- package/hooks/validation/AGENTS.md +20 -0
- package/hooks/validation/CLAUDE.md +1 -20
- package/hooks/validators/AGENTS.md +51 -0
- package/hooks/validators/CLAUDE.md +1 -51
- package/hooks/validators/health_check.py +52 -19
- package/hooks/validators/python_style_checks.py +1 -1
- package/hooks/validators/test_health_check.py +112 -27
- package/hooks/workflow/AGENTS.md +16 -0
- package/hooks/workflow/CLAUDE.md +1 -16
- package/installable-surfaces.manifest.json +1 -0
- package/output-styles/AGENTS.md +15 -0
- package/output-styles/CLAUDE.md +1 -15
- package/package.json +2 -1
- package/rules/AGENTS.md +61 -0
- package/rules/CLAUDE.md +1 -61
- package/rules/code-standards.md +5 -9
- package/rules/doc-prose-cuts.md +1 -1
- package/scripts/AGENTS.md +62 -0
- package/scripts/CLAUDE.md +1 -62
- package/scripts/codex_compat_materializer.py +4 -0
- package/scripts/dev_env_scripts_constants/AGENTS.md +21 -0
- package/scripts/dev_env_scripts_constants/CLAUDE.md +1 -21
- package/scripts/sync_to_cursor/AGENTS.md +23 -0
- package/scripts/sync_to_cursor/CLAUDE.md +1 -23
- package/scripts/test_active_capability_references.py +2 -2
- package/scripts/test_validate_instruction_pairs.py +90 -0
- package/scripts/test_verify_installable_package.py +5 -1
- package/scripts/tests/AGENTS.md +33 -0
- package/scripts/tests/CLAUDE.md +1 -33
- package/scripts/tests/test_codex_compat_materializer.py +36 -1
- package/scripts/validate_instruction_pairs.py +183 -0
- package/skills/AGENTS.md +72 -0
- package/skills/CLAUDE.md +1 -72
- package/skills/_shared/AGENTS.md +44 -0
- package/skills/_shared/CLAUDE.md +1 -44
- package/skills/_shared/advisor/AGENTS.md +9 -0
- package/skills/_shared/advisor/CLAUDE.md +1 -9
- package/skills/_shared/pr-loop/AGENTS.md +50 -0
- package/skills/_shared/pr-loop/CLAUDE.md +1 -50
- package/skills/_shared/pr-loop/prompts/AGENTS.md +9 -0
- package/skills/_shared/pr-loop/prompts/CLAUDE.md +1 -9
- package/skills/_shared/pr-loop/scripts/AGENTS.md +35 -0
- package/skills/_shared/pr-loop/scripts/CLAUDE.md +1 -35
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/AGENTS.md +24 -0
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/CLAUDE.md +1 -24
- package/skills/anthropic-plan/AGENTS.md +34 -0
- package/skills/anthropic-plan/CLAUDE.md +1 -34
- package/skills/anthropic-plan/SKILL.md +1 -1
- package/skills/anthropic-plan/scripts/AGENTS.md +11 -0
- package/skills/anthropic-plan/scripts/CLAUDE.md +1 -11
- package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +16 -0
- package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/CLAUDE.md +1 -16
- package/skills/anthropic-plan/templates/AGENTS.md +13 -0
- package/skills/anthropic-plan/templates/CLAUDE.md +1 -13
- package/skills/anthropic-plan/test_skill_contract.py +8 -6
- package/skills/anthropic-plan/workflow/AGENTS.md +14 -0
- package/skills/anthropic-plan/workflow/CLAUDE.md +1 -14
- package/skills/auditing-claude-config/AGENTS.md +21 -0
- package/skills/auditing-claude-config/CLAUDE.md +1 -21
- package/skills/autoconverge/AGENTS.md +36 -0
- package/skills/autoconverge/CLAUDE.md +1 -36
- package/skills/autoconverge/reference/AGENTS.md +16 -0
- package/skills/autoconverge/reference/CLAUDE.md +1 -16
- package/skills/autoconverge/workflow/AGENTS.md +26 -0
- package/skills/autoconverge/workflow/CLAUDE.md +1 -26
- package/skills/autoconverge/workflow/autoconverge_report_constants/AGENTS.md +16 -0
- package/skills/autoconverge/workflow/autoconverge_report_constants/CLAUDE.md +1 -16
- package/skills/bugteam/AGENTS.md +30 -0
- package/skills/bugteam/CLAUDE.md +1 -30
- package/skills/bugteam/reference/AGENTS.md +20 -0
- package/skills/bugteam/reference/CLAUDE.md +1 -20
- package/skills/bugteam/reference/obstacles/AGENTS.md +24 -0
- package/skills/bugteam/reference/obstacles/CLAUDE.md +1 -24
- package/skills/bugteam/scripts/AGENTS.md +30 -0
- package/skills/bugteam/scripts/CLAUDE.md +1 -30
- package/skills/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +18 -0
- package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +1 -18
- package/skills/closeout/reference/handoff-prompt-template.md +1 -1
- package/skills/codex-review/AGENTS.md +46 -0
- package/skills/codex-review/CLAUDE.md +1 -46
- package/skills/codex-review/reference/AGENTS.md +15 -0
- package/skills/codex-review/reference/CLAUDE.md +1 -15
- package/skills/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +18 -0
- package/skills/codex-review/scripts/codex_review_scripts_constants/CLAUDE.md +1 -18
- package/skills/codex-review/test_skill_scaffold.py +3 -3
- package/skills/copilot-review/AGENTS.md +18 -0
- package/skills/copilot-review/CLAUDE.md +1 -18
- package/skills/everything-search/AGENTS.md +17 -0
- package/skills/everything-search/CLAUDE.md +1 -17
- package/skills/fresh-branch/AGENTS.md +14 -0
- package/skills/fresh-branch/CLAUDE.md +1 -14
- package/skills/grok-spawn/AGENTS.md +28 -0
- package/skills/grok-spawn/CLAUDE.md +1 -28
- package/skills/pr-converge/AGENTS.md +32 -0
- package/skills/pr-converge/CLAUDE.md +1 -32
- package/skills/pr-converge/pr_converge_skill_constants/AGENTS.md +26 -0
- package/skills/pr-converge/pr_converge_skill_constants/CLAUDE.md +1 -26
- package/skills/pr-converge/reference/AGENTS.md +28 -0
- package/skills/pr-converge/reference/CLAUDE.md +1 -28
- package/skills/pr-converge/reference/obstacles/AGENTS.md +23 -0
- package/skills/pr-converge/reference/obstacles/CLAUDE.md +1 -23
- package/skills/pr-converge/scripts/AGENTS.md +46 -0
- package/skills/pr-converge/scripts/CLAUDE.md +1 -46
- package/skills/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +18 -0
- package/skills/pr-converge/scripts/pr_converge_scripts_constants/CLAUDE.md +1 -18
- package/skills/pr-converge/workflows/AGENTS.md +16 -0
- package/skills/pr-converge/workflows/CLAUDE.md +1 -16
- package/skills/prototype/SKILL.md +1 -2
- package/skills/prototype/reference/honest-limitations.md +1 -1
- package/skills/prototype/reference/promotion-tasks.md +1 -1
- package/skills/prototype/workflows/promotion.md +1 -1
- package/skills/rebase/AGENTS.md +32 -0
- package/skills/rebase/CLAUDE.md +1 -32
- package/skills/recall/AGENTS.md +30 -0
- package/skills/recall/CLAUDE.md +1 -30
- package/skills/remember/AGENTS.md +31 -0
- package/skills/remember/CLAUDE.md +1 -31
- package/skills/reviews/SKILL.md +1 -1
- package/skills/session-log/AGENTS.md +32 -0
- package/skills/session-log/CLAUDE.md +1 -32
- package/skills/session-tidy/AGENTS.md +36 -0
- package/skills/session-tidy/CLAUDE.md +1 -36
- package/skills/skill-builder/AGENTS.md +49 -0
- package/skills/skill-builder/CLAUDE.md +1 -49
- package/skills/skill-builder/references/AGENTS.md +25 -0
- package/skills/skill-builder/references/CLAUDE.md +1 -25
- package/skills/skill-builder/references/deterministic-elements.md +1 -1
- package/skills/skill-builder/templates/AGENTS.md +14 -0
- package/skills/skill-builder/templates/CLAUDE.md +1 -14
- package/skills/skill-builder/workflows/AGENTS.md +19 -0
- package/skills/skill-builder/workflows/CLAUDE.md +1 -19
- package/skills/task-build/AGENTS.md +29 -0
- package/skills/task-build/CLAUDE.md +1 -29
- package/skills/update/AGENTS.md +38 -0
- package/skills/update/CLAUDE.md +1 -38
- package/system-prompts/AGENTS.md +17 -0
- package/system-prompts/CLAUDE.md +1 -17
- package/system-prompts/software-engineer.xml +3 -3
- package/agents/caveman.md +0 -73
- package/agents/clasp-deployment-orchestrator.md +0 -608
- package/agents/code-advisor.md +0 -23
- package/agents/deep-research.md +0 -152
- package/agents/docs-agent.md +0 -85
- package/commands/commit.md +0 -28
- package/commands/docupdate.md +0 -322
- package/commands/hook-log-extract.md +0 -70
- package/commands/hook-log-init.md +0 -76
- package/commands/implement.md +0 -102
- package/commands/plan.md +0 -14
- package/commands/pr-comments.md +0 -47
- package/commands/review-plan.md +0 -5
- package/commands/right-size.md +0 -15
- package/commands/sum.md +0 -30
- package/skills/imagegen/SKILL.md +0 -21
- package/skills/imagegen/scripts/config/__init__.py +0 -1
- package/skills/imagegen/scripts/config/constants.py +0 -28
- package/skills/imagegen/scripts/imagegen.py +0 -45
- package/skills/imagegen/scripts/imagegen_core.py +0 -528
- package/skills/imagegen/scripts/test_imagegen.py +0 -204
|
@@ -9,6 +9,7 @@ SKILL_DIRECTORY = Path(__file__).resolve().parent
|
|
|
9
9
|
CLAUDE_DIRECTORY = SKILL_DIRECTORY.parent.parent
|
|
10
10
|
SKILL_PATH = SKILL_DIRECTORY / "SKILL.md"
|
|
11
11
|
PLAN_COMMAND_PATH = CLAUDE_DIRECTORY / "commands" / "plan.md"
|
|
12
|
+
SR_LOOP_COMMAND_PATH = CLAUDE_DIRECTORY / "commands" / "sr-loop.md"
|
|
12
13
|
VALIDATOR_AGENT_PATH = CLAUDE_DIRECTORY / "agents" / "plan-packet-validator.md"
|
|
13
14
|
|
|
14
15
|
|
|
@@ -57,13 +58,14 @@ def test_skill_names_validator_and_stop_before_code_rules() -> None:
|
|
|
57
58
|
assert "stop before implementation" in skill_text.lower()
|
|
58
59
|
|
|
59
60
|
|
|
60
|
-
def
|
|
61
|
-
|
|
61
|
+
def test_skill_keeps_anthropic_plan_slash_without_plan_command() -> None:
|
|
62
|
+
skill_text = SKILL_PATH.read_text(encoding="utf-8")
|
|
62
63
|
|
|
63
|
-
assert "anthropic-plan" in
|
|
64
|
-
assert
|
|
65
|
-
assert
|
|
66
|
-
assert "plan
|
|
64
|
+
assert "/anthropic-plan" in skill_text
|
|
65
|
+
assert not PLAN_COMMAND_PATH.exists()
|
|
66
|
+
assert SR_LOOP_COMMAND_PATH.exists()
|
|
67
|
+
assert "write-plan" not in skill_text
|
|
68
|
+
assert "plan-executor" not in skill_text
|
|
67
69
|
|
|
68
70
|
|
|
69
71
|
def test_validator_agent_exists_and_is_read_only() -> None:
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# workflow
|
|
2
|
+
|
|
3
|
+
Workflow scripts for the `anthropic-plan` skill.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Role |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `plan-packet.mjs` | Main workflow script. Resolves repo root, reads project context, builds the source inventory, writes the full packet under `docs/plans/<slug>/`, runs `validate_packet.py`, spawns `plan-packet-validator` in a fresh context, runs the reuse audit, builds the visual HTML from `templates/visual-plan.template.html`, and returns the packet path and validation state. |
|
|
10
|
+
| `plan-packet.contract.test.mjs` | Contract tests that verify the workflow script's interface and required steps without a live repo. |
|
|
11
|
+
|
|
12
|
+
## Running
|
|
13
|
+
|
|
14
|
+
The `plan-packet.mjs` script runs via the `Workflow` tool — do not invoke it directly with Node. The skill's `SKILL.md` specifies the exact call signature and required `args`.
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Workflow scripts for the `anthropic-plan` skill.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Role |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `plan-packet.mjs` | Main workflow script. Resolves repo root, reads project context, builds the source inventory, writes the full packet under `docs/plans/<slug>/`, runs `validate_packet.py`, spawns `plan-packet-validator` in a fresh context, runs the reuse audit, builds the visual HTML from `templates/visual-plan.template.html`, and returns the packet path and validation state. |
|
|
10
|
-
| `plan-packet.contract.test.mjs` | Contract tests that verify the workflow script's interface and required steps without a live repo. |
|
|
11
|
-
|
|
12
|
-
## Running
|
|
13
|
-
|
|
14
|
-
The `plan-packet.mjs` script runs via the `Workflow` tool — do not invoke it directly with Node. The skill's `SKILL.md` specifies the exact call signature and required `args`.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# auditing-claude-config
|
|
2
|
+
|
|
3
|
+
**Trigger:** `/auditing-claude-config`, reviewing the startup instruction load, `/memory` showing unexpected files, adding new rules, periodic config hygiene.
|
|
4
|
+
|
|
5
|
+
Audits a Claude Code setup — user `CLAUDE.md`, `~/.claude/rules/`, project `.claude/` — for context-budget waste: duplicate `@`-imports, always-on rules that could be path-scoped or turned into skills, and oversized files. Produces a migration table with line savings.
|
|
6
|
+
|
|
7
|
+
## Key files
|
|
8
|
+
|
|
9
|
+
| File | Role |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `SKILL.md` | Full audit protocol: inventory the always-loaded set, find duplicate imports, classify each rule, produce the migration table, stage recommendations by risk, and verify lazy-load behavior with an optional probe hook. |
|
|
12
|
+
| `reference/probe-hook.md` | The optional lazy-load probe hook: hook script, `settings.json` registration, and test protocol. |
|
|
13
|
+
|
|
14
|
+
## What the skill produces
|
|
15
|
+
|
|
16
|
+
1. **Baseline** — total always-loaded lines, broken down by file.
|
|
17
|
+
2. **Migration table** — one row per rule: current lines, verdict, specific action, lines removed from preload.
|
|
18
|
+
3. **Recommended next step** — the single highest-leverage change.
|
|
19
|
+
4. **Open questions** — anything not verified by the probe hook.
|
|
20
|
+
|
|
21
|
+
No runnable scripts or workflow files. The audit logic lives in the skill body; the optional lazy-load probe hook lives in `reference/probe-hook.md` as copy-ready text.
|
|
@@ -1,21 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
**Trigger:** `/auditing-claude-config`, reviewing the startup instruction load, `/memory` showing unexpected files, adding new rules, periodic config hygiene.
|
|
4
|
-
|
|
5
|
-
Audits a Claude Code setup — user `CLAUDE.md`, `~/.claude/rules/`, project `.claude/` — for context-budget waste: duplicate `@`-imports, always-on rules that could be path-scoped or turned into skills, and oversized files. Produces a migration table with line savings.
|
|
6
|
-
|
|
7
|
-
## Key files
|
|
8
|
-
|
|
9
|
-
| File | Role |
|
|
10
|
-
|---|---|
|
|
11
|
-
| `SKILL.md` | Full audit protocol: inventory the always-loaded set, find duplicate imports, classify each rule, produce the migration table, stage recommendations by risk, and verify lazy-load behavior with an optional probe hook. |
|
|
12
|
-
| `reference/probe-hook.md` | The optional lazy-load probe hook: hook script, `settings.json` registration, and test protocol. |
|
|
13
|
-
|
|
14
|
-
## What the skill produces
|
|
15
|
-
|
|
16
|
-
1. **Baseline** — total always-loaded lines, broken down by file.
|
|
17
|
-
2. **Migration table** — one row per rule: current lines, verdict, specific action, lines removed from preload.
|
|
18
|
-
3. **Recommended next step** — the single highest-leverage change.
|
|
19
|
-
4. **Open questions** — anything not verified by the probe hook.
|
|
20
|
-
|
|
21
|
-
No runnable scripts or workflow files. The audit logic lives in the skill body; the optional lazy-load probe hook lives in `reference/probe-hook.md` as copy-ready text.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# autoconverge
|
|
2
|
+
|
|
3
|
+
**Trigger:** `/autoconverge`, "autoconverge this PR", "converge this PR in one run", "run the converge workflow", "drive the PR to ready autonomously".
|
|
4
|
+
|
|
5
|
+
Drives one draft PR to convergence in one autonomous run. On `pacer=workflow`, each round runs a deterministic static sweep first, then a code-review pass, a bug-audit (with its adversarial second pass), and a self-review parity pass in parallel on the same HEAD, deduplicates findings, applies every fix in one commit, and re-verifies; state lives in the workflow journal. On `pacer=portable`, the continuous driver in `_shared/pr-loop/portable-driver.md` runs the shared pr-converge phase machine with the same helpers and `check_convergence.py` ready definition. Once the internal passes are clean, Cursor Bugbot, Copilot, and Codex run as terminal confirmation gates, and the run marks the PR ready on convergence.
|
|
6
|
+
|
|
7
|
+
## Subdirectories
|
|
8
|
+
|
|
9
|
+
| Directory | Role |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `reference/` | Markdown docs the skill and workflow cite: round shape, stop conditions, gotchas, and closing report format. |
|
|
12
|
+
| `workflow/` | The `.mjs` convergence workflow, Python report scripts, test files, and the `autoconverge_report_constants/` package. |
|
|
13
|
+
|
|
14
|
+
## Key files
|
|
15
|
+
|
|
16
|
+
| File | Role |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `SKILL.md` | Full entry-point protocol: pacer selection, pre-flight steps, worktree setup, Workflow or portable path, budget-aware boundaries, teardown, and the convergence loop summary. |
|
|
19
|
+
| `workflow/converge.mjs` | Main convergence workflow. Runs a static sweep then the internal lenses each round, applies fixes, runs Bugbot, Copilot, and Codex as terminal gates, checks convergence, and marks the PR ready. |
|
|
20
|
+
| `workflow/aggregate_runs.py` | Merges every autoconverge journal for a PR into one deduped journal. |
|
|
21
|
+
| `workflow/convergence_summary.py` | Builds the convergence-summary agent prompt over the merged findings. |
|
|
22
|
+
| `workflow/render_report.py` | Builds the closing HTML report from the merged journal and summary. |
|
|
23
|
+
| `reference/convergence.md` | Round shape: the static sweep, the three parallel internal lenses, deduplication, fix commit, the terminal Bugbot, Copilot, and Codex gates, and the ready definition. |
|
|
24
|
+
| `reference/copilot-findings.md` | The Copilot gate tiering, per-finding verification, and the `userReview` return contract. |
|
|
25
|
+
| `reference/stop-conditions.md` | Every way the run ends short of ready, including the budget stop. |
|
|
26
|
+
| `reference/gotchas.md` | Hard-won failure lessons. |
|
|
27
|
+
| `reference/closing-report.md` | The closing HTML report: data source, build steps, publishing. |
|
|
28
|
+
| `reference/multi-pr.md` | The several-PRs path: per-PR worktrees, the `converge_multi.mjs` launch, per-PR teardown. |
|
|
29
|
+
| `reference/self-closing-loop.md` | The deferred-PR generations and the Conventional-Commit title rule. |
|
|
30
|
+
| `reference/headless-safety.md` | The agent-prompt headless-safety preamble and the rm auto-allow paths. |
|
|
31
|
+
|
|
32
|
+
## Entry point
|
|
33
|
+
|
|
34
|
+
Selects `workflow` or `portable` via `select_converge_pacer.py`. Missing
|
|
35
|
+
`Workflow` selects portable and continues — it does not abort. The `SKILL.md`
|
|
36
|
+
body specifies the pre-flight sequence and each pacer's run path.
|
|
@@ -1,36 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
**Trigger:** `/autoconverge`, "autoconverge this PR", "converge this PR in one run", "run the converge workflow", "drive the PR to ready autonomously".
|
|
4
|
-
|
|
5
|
-
Drives one draft PR to convergence in one autonomous run. On `pacer=workflow`, each round runs a deterministic static sweep first, then a code-review pass, a bug-audit (with its adversarial second pass), and a self-review parity pass in parallel on the same HEAD, deduplicates findings, applies every fix in one commit, and re-verifies; state lives in the workflow journal. On `pacer=portable`, the continuous driver in `_shared/pr-loop/portable-driver.md` runs the shared pr-converge phase machine with the same helpers and `check_convergence.py` ready definition. Once the internal passes are clean, Cursor Bugbot, Copilot, and Codex run as terminal confirmation gates, and the run marks the PR ready on convergence.
|
|
6
|
-
|
|
7
|
-
## Subdirectories
|
|
8
|
-
|
|
9
|
-
| Directory | Role |
|
|
10
|
-
|---|---|
|
|
11
|
-
| `reference/` | Markdown docs the skill and workflow cite: round shape, stop conditions, gotchas, and closing report format. |
|
|
12
|
-
| `workflow/` | The `.mjs` convergence workflow, Python report scripts, test files, and the `autoconverge_report_constants/` package. |
|
|
13
|
-
|
|
14
|
-
## Key files
|
|
15
|
-
|
|
16
|
-
| File | Role |
|
|
17
|
-
|---|---|
|
|
18
|
-
| `SKILL.md` | Full entry-point protocol: pacer selection, pre-flight steps, worktree setup, Workflow or portable path, budget-aware boundaries, teardown, and the convergence loop summary. |
|
|
19
|
-
| `workflow/converge.mjs` | Main convergence workflow. Runs a static sweep then the internal lenses each round, applies fixes, runs Bugbot, Copilot, and Codex as terminal gates, checks convergence, and marks the PR ready. |
|
|
20
|
-
| `workflow/aggregate_runs.py` | Merges every autoconverge journal for a PR into one deduped journal. |
|
|
21
|
-
| `workflow/convergence_summary.py` | Builds the convergence-summary agent prompt over the merged findings. |
|
|
22
|
-
| `workflow/render_report.py` | Builds the closing HTML report from the merged journal and summary. |
|
|
23
|
-
| `reference/convergence.md` | Round shape: the static sweep, the three parallel internal lenses, deduplication, fix commit, the terminal Bugbot, Copilot, and Codex gates, and the ready definition. |
|
|
24
|
-
| `reference/copilot-findings.md` | The Copilot gate tiering, per-finding verification, and the `userReview` return contract. |
|
|
25
|
-
| `reference/stop-conditions.md` | Every way the run ends short of ready, including the budget stop. |
|
|
26
|
-
| `reference/gotchas.md` | Hard-won failure lessons. |
|
|
27
|
-
| `reference/closing-report.md` | The closing HTML report: data source, build steps, publishing. |
|
|
28
|
-
| `reference/multi-pr.md` | The several-PRs path: per-PR worktrees, the `converge_multi.mjs` launch, per-PR teardown. |
|
|
29
|
-
| `reference/self-closing-loop.md` | The deferred-PR generations and the Conventional-Commit title rule. |
|
|
30
|
-
| `reference/headless-safety.md` | The agent-prompt headless-safety preamble and the rm auto-allow paths. |
|
|
31
|
-
|
|
32
|
-
## Entry point
|
|
33
|
-
|
|
34
|
-
Selects `workflow` or `portable` via `select_converge_pacer.py`. Missing
|
|
35
|
-
`Workflow` selects portable and continues — it does not abort. The `SKILL.md`
|
|
36
|
-
body specifies the pre-flight sequence and each pacer's run path.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# reference
|
|
2
|
+
|
|
3
|
+
Reference documentation for the `autoconverge` skill. The `converge.mjs` workflow and the `SKILL.md` cite these files to define behavior precisely.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Role |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `convergence.md` | Round shape: the static sweep, the three parallel internal lenses (code-review, bug-audit, self-review), deduplication, the fix commit step, the terminal Bugbot, Copilot, and Codex gates, and the definition of a clean convergence. |
|
|
10
|
+
| `copilot-findings.md` | The Copilot gate tiering, per-finding verification, and the `userReview` return contract. |
|
|
11
|
+
| `stop-conditions.md` | Every condition that ends the run short of ready: budget cap, iteration cap, blocker exit, static-sweep stall, Bugbot, Copilot, and Codex bypass. |
|
|
12
|
+
| `gotchas.md` | Current operating guidance for PR title validation, conflicting PRs, worktree branch lock, resumed sessions, and commit or push failures. |
|
|
13
|
+
| `closing-report.md` | The closing HTML convergence report the teardown step builds and publishes: data source, build steps, publishing. |
|
|
14
|
+
| `multi-pr.md` | The several-PRs path: per-PR worktrees, the `converge_multi.mjs` launch, per-PR teardown. |
|
|
15
|
+
| `self-closing-loop.md` | The deferred-PR generations the orchestrator converges after teardown, and the Conventional-Commit title rule on hardening PRs. |
|
|
16
|
+
| `headless-safety.md` | The headless-safety preamble every agent prompt carries, and the rm auto-allow paths. |
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Reference documentation for the `autoconverge` skill. The `converge.mjs` workflow and the `SKILL.md` cite these files to define behavior precisely.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Role |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `convergence.md` | Round shape: the static sweep, the three parallel internal lenses (code-review, bug-audit, self-review), deduplication, the fix commit step, the terminal Bugbot, Copilot, and Codex gates, and the definition of a clean convergence. |
|
|
10
|
-
| `copilot-findings.md` | The Copilot gate tiering, per-finding verification, and the `userReview` return contract. |
|
|
11
|
-
| `stop-conditions.md` | Every condition that ends the run short of ready: budget cap, iteration cap, blocker exit, static-sweep stall, Bugbot, Copilot, and Codex bypass. |
|
|
12
|
-
| `gotchas.md` | Current operating guidance for PR title validation, conflicting PRs, worktree branch lock, resumed sessions, and commit or push failures. |
|
|
13
|
-
| `closing-report.md` | The closing HTML convergence report the teardown step builds and publishes: data source, build steps, publishing. |
|
|
14
|
-
| `multi-pr.md` | The several-PRs path: per-PR worktrees, the `converge_multi.mjs` launch, per-PR teardown. |
|
|
15
|
-
| `self-closing-loop.md` | The deferred-PR generations the orchestrator converges after teardown, and the Conventional-Commit title rule on hardening PRs. |
|
|
16
|
-
| `headless-safety.md` | The headless-safety preamble every agent prompt carries, and the rm auto-allow paths. |
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# workflow
|
|
2
|
+
|
|
3
|
+
Workflow scripts and report utilities for the `autoconverge` skill.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Role |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `converge.mjs` | Main convergence workflow script. Each round runs a deterministic static sweep first, then code-review, bug-audit, and self-review lenses in parallel, deduplicates findings, applies fixes, and pushes; Bugbot, Copilot, and Codex then run as terminal confirmation gates before it checks convergence and marks the PR ready. Runs via the `Workflow` tool — not directly with Node. |
|
|
10
|
+
| `aggregate_runs.py` | Merges every autoconverge journal for a given PR (matched by run id) into one merged journal. Prints a JSON line with `mergedJournal`, `roundCount`, `finalSha`, and `findingCount`. |
|
|
11
|
+
| `convergence_summary.py` | Builds the convergence-summary agent prompt over the merged journal's findings. The teardown step spawns a `general-purpose` subagent on this prompt. |
|
|
12
|
+
| `render_report.py` | Builds the closing HTML insights report. Takes `--journal`, `--summary-file`, `--out`, `--pr`, `--final-sha`, and `--rounds`. Writes the HTML to `--out` and prints the output path on stdout. |
|
|
13
|
+
| `autoconverge_report_constants/` | Named constants package for `render_report.py` and `convergence_summary.py`. |
|
|
14
|
+
| `converge.contract.test.mjs` | Contract tests for `converge.mjs` — verify the workflow interface and step ordering. |
|
|
15
|
+
| `converge.clean-audit.test.mjs` | Tests the clean-audit path (all lenses clean on first round). |
|
|
16
|
+
| `converge.copilot-gate.test.mjs` | Tests Copilot gate behavior (bypass on quota exhaustion). |
|
|
17
|
+
| `converge.codex-gate.test.mjs` | Tests Codex gate classification (required+clean, skip-token, skip-usage, codex_down) and phase wiring. |
|
|
18
|
+
| `converge.precatch.test.mjs` | Tests the pre-catch stage: static-sweep ordering and gate coverage, the adversarial second pass, the self-review lens, the terminal Bugbot gate, the read-only/edit preamble split, and the commit-recovery cap. |
|
|
19
|
+
| `converge.fix-progress.test.mjs` | Tests fix-progress tracking across rounds. |
|
|
20
|
+
| `converge.fix-recovery.test.mjs` | Tests recovery when a fix commit fails. |
|
|
21
|
+
| `converge.p2-advance.test.mjs` | Tests P2-only fix-then-advance helpers and phase routing. |
|
|
22
|
+
| `converge.run-input.test.mjs` | Tests workflow input validation. |
|
|
23
|
+
| `test_aggregate_runs.py` | Tests for `aggregate_runs.py`. |
|
|
24
|
+
| `test_convergence_summary.py` | Tests for `convergence_summary.py`. |
|
|
25
|
+
| `test_render_report.py` | Tests for `render_report.py`. |
|
|
26
|
+
| `fixtures/` | Test fixture data for the workflow tests. |
|
|
@@ -1,26 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Workflow scripts and report utilities for the `autoconverge` skill.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Role |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `converge.mjs` | Main convergence workflow script. Each round runs a deterministic static sweep first, then code-review, bug-audit, and self-review lenses in parallel, deduplicates findings, applies fixes, and pushes; Bugbot, Copilot, and Codex then run as terminal confirmation gates before it checks convergence and marks the PR ready. Runs via the `Workflow` tool — not directly with Node. |
|
|
10
|
-
| `aggregate_runs.py` | Merges every autoconverge journal for a given PR (matched by run id) into one merged journal. Prints a JSON line with `mergedJournal`, `roundCount`, `finalSha`, and `findingCount`. |
|
|
11
|
-
| `convergence_summary.py` | Builds the convergence-summary agent prompt over the merged journal's findings. The teardown step spawns a `general-purpose` subagent on this prompt. |
|
|
12
|
-
| `render_report.py` | Builds the closing HTML insights report. Takes `--journal`, `--summary-file`, `--out`, `--pr`, `--final-sha`, and `--rounds`. Writes the HTML to `--out` and prints the output path on stdout. |
|
|
13
|
-
| `autoconverge_report_constants/` | Named constants package for `render_report.py` and `convergence_summary.py`. |
|
|
14
|
-
| `converge.contract.test.mjs` | Contract tests for `converge.mjs` — verify the workflow interface and step ordering. |
|
|
15
|
-
| `converge.clean-audit.test.mjs` | Tests the clean-audit path (all lenses clean on first round). |
|
|
16
|
-
| `converge.copilot-gate.test.mjs` | Tests Copilot gate behavior (bypass on quota exhaustion). |
|
|
17
|
-
| `converge.codex-gate.test.mjs` | Tests Codex gate classification (required+clean, skip-token, skip-usage, codex_down) and phase wiring. |
|
|
18
|
-
| `converge.precatch.test.mjs` | Tests the pre-catch stage: static-sweep ordering and gate coverage, the adversarial second pass, the self-review lens, the terminal Bugbot gate, the read-only/edit preamble split, and the commit-recovery cap. |
|
|
19
|
-
| `converge.fix-progress.test.mjs` | Tests fix-progress tracking across rounds. |
|
|
20
|
-
| `converge.fix-recovery.test.mjs` | Tests recovery when a fix commit fails. |
|
|
21
|
-
| `converge.p2-advance.test.mjs` | Tests P2-only fix-then-advance helpers and phase routing. |
|
|
22
|
-
| `converge.run-input.test.mjs` | Tests workflow input validation. |
|
|
23
|
-
| `test_aggregate_runs.py` | Tests for `aggregate_runs.py`. |
|
|
24
|
-
| `test_convergence_summary.py` | Tests for `convergence_summary.py`. |
|
|
25
|
-
| `test_render_report.py` | Tests for `render_report.py`. |
|
|
26
|
-
| `fixtures/` | Test fixture data for the workflow tests. |
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# autoconverge_report_constants
|
|
2
|
+
|
|
3
|
+
Python package of named constants for `render_report.py` and `convergence_summary.py` in the `autoconverge/workflow/` directory.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Role |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `__init__.py` | Package marker. |
|
|
10
|
+
| `render_report_constants.py` | Named constants for the report renderer: structured output tool name, journal label prefixes (`resolve-head`, `lens:`, `fix:`, `copilot-gate`, `convergence-summary`), journal sibling directory names, default finding category and severity, date and SHA length constants, workflow name, projects directory name, merged run id prefix, summary detail character limit, and `onexc` Python version threshold. |
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```python
|
|
15
|
+
from autoconverge_report_constants.render_report_constants import LABEL_PREFIX_LENS
|
|
16
|
+
```
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Python package of named constants for `render_report.py` and `convergence_summary.py` in the `autoconverge/workflow/` directory.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Role |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `__init__.py` | Package marker. |
|
|
10
|
-
| `render_report_constants.py` | Named constants for the report renderer: structured output tool name, journal label prefixes (`resolve-head`, `lens:`, `fix:`, `copilot-gate`, `convergence-summary`), journal sibling directory names, default finding category and severity, date and SHA length constants, workflow name, projects directory name, merged run id prefix, summary detail character limit, and `onexc` Python version threshold. |
|
|
11
|
-
|
|
12
|
-
## Usage
|
|
13
|
-
|
|
14
|
-
```python
|
|
15
|
-
from autoconverge_report_constants.render_report_constants import LABEL_PREFIX_LENS
|
|
16
|
-
```
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# bugteam
|
|
2
|
+
|
|
3
|
+
Runs an audit-fix loop on an open pull request until all findings are resolved or the 20-loop cap is reached. Triggered by `/bugteam`, `run the bug team`, `auto-fix the PR until clean`, or `loop audit and fix`.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Each loop: a `code-quality-agent` (fresh context, all A–Q audit categories) produces an outcome XML; a `clean-coder` agent applies every fix; the lead commits, pushes, and posts a GitHub PR review (APPROVE on clean, REQUEST_CHANGES with inline anchored comments on dirty). Grants `.claude/**` write permissions at the start and revokes them at the end.
|
|
8
|
+
|
|
9
|
+
## Key files
|
|
10
|
+
|
|
11
|
+
| File | Purpose |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `SKILL.md` | Hub — pre-flight call, refusals, the audit-posting step (runs the shared `post_audit_thread.py` helper), progress checklist, and situation-to-reference table. Read this first. |
|
|
14
|
+
| `PROMPTS.md` | Spawn XML, A–Q category bindings, outcome XML schemas. |
|
|
15
|
+
| `CONSTRAINTS.md` | Invariants — what the loop must never violate. |
|
|
16
|
+
| `EXAMPLES.md` | Exit scenarios: converged, cap-reached, stuck, refusal, mixed-outcome. |
|
|
17
|
+
| `sources.md` | Doc URLs and verbatim quotes cited in the skill body. |
|
|
18
|
+
|
|
19
|
+
## Subdirectories
|
|
20
|
+
|
|
21
|
+
| Directory | Role |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `reference/` | Expanded workflow detail loaded on demand (team setup, audit contract, GitHub PR review shape, teardown). |
|
|
24
|
+
| `scripts/` | Python scripts executed by the lead or teammates at runtime. |
|
|
25
|
+
|
|
26
|
+
## Environment controls
|
|
27
|
+
|
|
28
|
+
- `CLAUDE_REVIEWS_DISABLED=bugteam` — disables the skill entirely (pre-flight exits 7).
|
|
29
|
+
- `BUGTEAM_PREFLIGHT_SKIP=1` — skips pytest in pre-flight.
|
|
30
|
+
- `BUGTEAM_REVIEWER_ACCOUNT=<login>` — names the alternate `gh` account for posting reviews when the PR author and reviewer identity match.
|
package/skills/bugteam/CLAUDE.md
CHANGED
|
@@ -1,30 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Runs an audit-fix loop on an open pull request until all findings are resolved or the 20-loop cap is reached. Triggered by `/bugteam`, `run the bug team`, `auto-fix the PR until clean`, or `loop audit and fix`.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Each loop: a `code-quality-agent` (fresh context, all A–Q audit categories) produces an outcome XML; a `clean-coder` agent applies every fix; the lead commits, pushes, and posts a GitHub PR review (APPROVE on clean, REQUEST_CHANGES with inline anchored comments on dirty). Grants `.claude/**` write permissions at the start and revokes them at the end.
|
|
8
|
-
|
|
9
|
-
## Key files
|
|
10
|
-
|
|
11
|
-
| File | Purpose |
|
|
12
|
-
|---|---|
|
|
13
|
-
| `SKILL.md` | Hub — pre-flight call, refusals, the audit-posting step (runs the shared `post_audit_thread.py` helper), progress checklist, and situation-to-reference table. Read this first. |
|
|
14
|
-
| `PROMPTS.md` | Spawn XML, A–Q category bindings, outcome XML schemas. |
|
|
15
|
-
| `CONSTRAINTS.md` | Invariants — what the loop must never violate. |
|
|
16
|
-
| `EXAMPLES.md` | Exit scenarios: converged, cap-reached, stuck, refusal, mixed-outcome. |
|
|
17
|
-
| `sources.md` | Doc URLs and verbatim quotes cited in the skill body. |
|
|
18
|
-
|
|
19
|
-
## Subdirectories
|
|
20
|
-
|
|
21
|
-
| Directory | Role |
|
|
22
|
-
|---|---|
|
|
23
|
-
| `reference/` | Expanded workflow detail loaded on demand (team setup, audit contract, GitHub PR review shape, teardown). |
|
|
24
|
-
| `scripts/` | Python scripts executed by the lead or teammates at runtime. |
|
|
25
|
-
|
|
26
|
-
## Environment controls
|
|
27
|
-
|
|
28
|
-
- `CLAUDE_REVIEWS_DISABLED=bugteam` — disables the skill entirely (pre-flight exits 7).
|
|
29
|
-
- `BUGTEAM_PREFLIGHT_SKIP=1` — skips pytest in pre-flight.
|
|
30
|
-
- `BUGTEAM_REVIEWER_ACCOUNT=<login>` — names the alternate `gh` account for posting reviews when the PR author and reviewer identity match.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# bugteam/reference
|
|
2
|
+
|
|
3
|
+
Expanded workflow detail for the `bugteam` skill. Load a file from this directory when the orchestration stub in `SKILL.md` is not enough — for example, when debugging GitHub review shape, understanding gate semantics, or working through teardown edge cases.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `README.md` | Index of all files in this directory with one-line domain summaries. |
|
|
10
|
+
| `team-setup.md` | Permissions grant, PR scope resolution, run name, temp dir, and loop state. |
|
|
11
|
+
| `audit-and-teammates.md` | Pre-audit CODE_RULES gate, full cycle numbering, AUDIT and FIX action detail. |
|
|
12
|
+
| `github-pr-reviews.md` | Per-loop review posting, `jq`+`gh api` payloads, inline anchors, fallbacks, REST endpoints. |
|
|
13
|
+
| `design-rationale.md` | Why clean-room subagents, when `/bugteam` applies, refusal reasons. |
|
|
14
|
+
| `copilot-gap-analysis.md` | Historical gap analysis (reference only). |
|
|
15
|
+
|
|
16
|
+
## Subdirectories
|
|
17
|
+
|
|
18
|
+
| Directory | Role |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `obstacles/` | Per-step obstacle guides — one file per common failure point (e.g., write XML, resolve thread, push, test suite). |
|
|
@@ -1,20 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Expanded workflow detail for the `bugteam` skill. Load a file from this directory when the orchestration stub in `SKILL.md` is not enough — for example, when debugging GitHub review shape, understanding gate semantics, or working through teardown edge cases.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `README.md` | Index of all files in this directory with one-line domain summaries. |
|
|
10
|
-
| `team-setup.md` | Permissions grant, PR scope resolution, run name, temp dir, and loop state. |
|
|
11
|
-
| `audit-and-teammates.md` | Pre-audit CODE_RULES gate, full cycle numbering, AUDIT and FIX action detail. |
|
|
12
|
-
| `github-pr-reviews.md` | Per-loop review posting, `jq`+`gh api` payloads, inline anchors, fallbacks, REST endpoints. |
|
|
13
|
-
| `design-rationale.md` | Why clean-room subagents, when `/bugteam` applies, refusal reasons. |
|
|
14
|
-
| `copilot-gap-analysis.md` | Historical gap analysis (reference only). |
|
|
15
|
-
|
|
16
|
-
## Subdirectories
|
|
17
|
-
|
|
18
|
-
| Directory | Role |
|
|
19
|
-
|---|---|
|
|
20
|
-
| `obstacles/` | Per-step obstacle guides — one file per common failure point (e.g., write XML, resolve thread, push, test suite). |
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# bugteam/reference/obstacles
|
|
2
|
+
|
|
3
|
+
Per-step obstacle guides for the `bugteam` skill. Each file addresses a specific failure point that can occur during an audit-fix loop. Load the matching file when a step fails rather than improvising a fix.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Obstacle it addresses |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `audit-assign-ids.md` | Assigning stable finding IDs in the audit output. |
|
|
10
|
+
| `audit-capture-excerpts.md` | Capturing code excerpts for each finding. |
|
|
11
|
+
| `audit-walk-categories.md` | Walking all A–Q categories without skipping. |
|
|
12
|
+
| `audit-write-xml.md` | Writing the outcome XML from an audit pass. |
|
|
13
|
+
| `fix-append-summary.md` | Appending the fix summary to the outcome XML. |
|
|
14
|
+
| `fix-apply-fixes.md` | Applying code fixes from the finding list. |
|
|
15
|
+
| `fix-git-add-commit.md` | Staging and committing the fixed files. |
|
|
16
|
+
| `fix-git-push.md` | Pushing the fix commit to the remote branch. |
|
|
17
|
+
| `fix-post-reply.md` | Posting inline replies to finding threads on the PR. |
|
|
18
|
+
| `fix-publish-summary.md` | Publishing the loop summary to the PR. |
|
|
19
|
+
| `fix-py-compile.md` | Verifying Python syntax after fixes. |
|
|
20
|
+
| `fix-read-files.md` | Reading the files referenced in a finding. |
|
|
21
|
+
| `fix-resolve-thread.md` | Resolving a finding's review thread on GitHub. |
|
|
22
|
+
| `fix-test-suite.md` | Running the test suite and interpreting failures. |
|
|
23
|
+
| `fix-violation-count.md` | Counting open violations after a fix pass. |
|
|
24
|
+
| `fix-write-xml.md` | Writing the per-fix XML record. |
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Per-step obstacle guides for the `bugteam` skill. Each file addresses a specific failure point that can occur during an audit-fix loop. Load the matching file when a step fails rather than improvising a fix.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
| File | Obstacle it addresses |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `audit-assign-ids.md` | Assigning stable finding IDs in the audit output. |
|
|
10
|
-
| `audit-capture-excerpts.md` | Capturing code excerpts for each finding. |
|
|
11
|
-
| `audit-walk-categories.md` | Walking all A–Q categories without skipping. |
|
|
12
|
-
| `audit-write-xml.md` | Writing the outcome XML from an audit pass. |
|
|
13
|
-
| `fix-append-summary.md` | Appending the fix summary to the outcome XML. |
|
|
14
|
-
| `fix-apply-fixes.md` | Applying code fixes from the finding list. |
|
|
15
|
-
| `fix-git-add-commit.md` | Staging and committing the fixed files. |
|
|
16
|
-
| `fix-git-push.md` | Pushing the fix commit to the remote branch. |
|
|
17
|
-
| `fix-post-reply.md` | Posting inline replies to finding threads on the PR. |
|
|
18
|
-
| `fix-publish-summary.md` | Publishing the loop summary to the PR. |
|
|
19
|
-
| `fix-py-compile.md` | Verifying Python syntax after fixes. |
|
|
20
|
-
| `fix-read-files.md` | Reading the files referenced in a finding. |
|
|
21
|
-
| `fix-resolve-thread.md` | Resolving a finding's review thread on GitHub. |
|
|
22
|
-
| `fix-test-suite.md` | Running the test suite and interpreting failures. |
|
|
23
|
-
| `fix-violation-count.md` | Counting open violations after a fix pass. |
|
|
24
|
-
| `fix-write-xml.md` | Writing the per-fix XML record. |
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# bugteam/scripts
|
|
2
|
+
|
|
3
|
+
Python scripts executed by the bugteam lead or teammates at runtime. These are not loaded into context as instructions — they run as subprocess calls from within the skill workflow.
|
|
4
|
+
|
|
5
|
+
## Scripts
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `bugteam_preflight.py` | Skill-path thin entry for shared `_shared/pr-loop/scripts/preflight.py`. Skips pytest when `BUGTEAM_PREFLIGHT_SKIP=1` or no test files exist. |
|
|
10
|
+
| `bugteam_fix_hookspath.py` | Skill-path thin entry for shared `_shared/pr-loop/scripts/fix_hookspath.py`. Auto-remediates a stale `core.hooksPath` override. |
|
|
11
|
+
| `bugteam_code_rules_gate.py` | Thin skill-path entry; re-exports shared `_shared/pr-loop/scripts/code_rules_gate.py` (of record). |
|
|
12
|
+
| `windows_safe_rmtree.py` | Remove a directory tree on Windows by stripping ReadOnly attributes and retrying on failure. |
|
|
13
|
+
| `probe_code_rules_enforcer_check.py` | Load `code_rules_enforcer.py` and invoke a named check function against a fixture file. |
|
|
14
|
+
| `reflow_skill_md.py` | Reflow the bugteam SKILL.md body to fit line-length limits. |
|
|
15
|
+
|
|
16
|
+
## Test files
|
|
17
|
+
|
|
18
|
+
| File | Tests |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `test_bugteam_preflight.py` | Smoke for thin wrap; behavioral suite is `_shared/pr-loop/scripts/tests/test_preflight.py` |
|
|
21
|
+
| `test_bugteam_code_rules_gate.py` | Smoke for thin wrap; behavioral suite is `_shared/pr-loop/scripts/tests/test_code_rules_gate.py` |
|
|
22
|
+
| `test_bugteam_fix_hookspath.py` | Smoke for thin wrap; behavioral suite is `_shared/pr-loop/scripts/tests/test_fix_hookspath.py` |
|
|
23
|
+
| `test_probe_code_rules_enforcer_check.py` | `probe_code_rules_enforcer_check.py` |
|
|
24
|
+
| `test_windows_safe_rmtree.py` | `windows_safe_rmtree.py` |
|
|
25
|
+
|
|
26
|
+
## Subdirectories
|
|
27
|
+
|
|
28
|
+
| Directory | Role |
|
|
29
|
+
|---|---|
|
|
30
|
+
| `bugteam_scripts_constants/` | Named constants imported by the scripts above. |
|
|
@@ -1,30 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Python scripts executed by the bugteam lead or teammates at runtime. These are not loaded into context as instructions — they run as subprocess calls from within the skill workflow.
|
|
4
|
-
|
|
5
|
-
## Scripts
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `bugteam_preflight.py` | Skill-path thin entry for shared `_shared/pr-loop/scripts/preflight.py`. Skips pytest when `BUGTEAM_PREFLIGHT_SKIP=1` or no test files exist. |
|
|
10
|
-
| `bugteam_fix_hookspath.py` | Skill-path thin entry for shared `_shared/pr-loop/scripts/fix_hookspath.py`. Auto-remediates a stale `core.hooksPath` override. |
|
|
11
|
-
| `bugteam_code_rules_gate.py` | Thin skill-path entry; re-exports shared `_shared/pr-loop/scripts/code_rules_gate.py` (of record). |
|
|
12
|
-
| `windows_safe_rmtree.py` | Remove a directory tree on Windows by stripping ReadOnly attributes and retrying on failure. |
|
|
13
|
-
| `probe_code_rules_enforcer_check.py` | Load `code_rules_enforcer.py` and invoke a named check function against a fixture file. |
|
|
14
|
-
| `reflow_skill_md.py` | Reflow the bugteam SKILL.md body to fit line-length limits. |
|
|
15
|
-
|
|
16
|
-
## Test files
|
|
17
|
-
|
|
18
|
-
| File | Tests |
|
|
19
|
-
|---|---|
|
|
20
|
-
| `test_bugteam_preflight.py` | Smoke for thin wrap; behavioral suite is `_shared/pr-loop/scripts/tests/test_preflight.py` |
|
|
21
|
-
| `test_bugteam_code_rules_gate.py` | Smoke for thin wrap; behavioral suite is `_shared/pr-loop/scripts/tests/test_code_rules_gate.py` |
|
|
22
|
-
| `test_bugteam_fix_hookspath.py` | Smoke for thin wrap; behavioral suite is `_shared/pr-loop/scripts/tests/test_fix_hookspath.py` |
|
|
23
|
-
| `test_probe_code_rules_enforcer_check.py` | `probe_code_rules_enforcer_check.py` |
|
|
24
|
-
| `test_windows_safe_rmtree.py` | `windows_safe_rmtree.py` |
|
|
25
|
-
|
|
26
|
-
## Subdirectories
|
|
27
|
-
|
|
28
|
-
| Directory | Role |
|
|
29
|
-
|---|---|
|
|
30
|
-
| `bugteam_scripts_constants/` | Named constants imported by the scripts above. |
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# bugteam/scripts/bugteam_scripts_constants
|
|
2
|
+
|
|
3
|
+
Python package of named constants imported by the bugteam scripts. Each module holds the constants for one script; importing from this package keeps magic values out of the script bodies.
|
|
4
|
+
|
|
5
|
+
## Modules
|
|
6
|
+
|
|
7
|
+
| File | Constants for |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `probe_code_rules_enforcer_check_constants.py` | `probe_code_rules_enforcer_check.py` — enforcer module path and function name constants. |
|
|
10
|
+
| `reflow_skill_md_constants.py` | `reflow_skill_md.py` — line-length and formatting constants. |
|
|
11
|
+
| `windows_safe_rmtree_constants.py` | `windows_safe_rmtree.py` — retry count and wait constants. |
|
|
12
|
+
| `__init__.py` | Empty package marker. |
|
|
13
|
+
|
|
14
|
+
Preflight, fix_hookspath, and code_rules_gate constants live under package shared `pr_loop_shared_constants` with the shared implementations.
|
|
15
|
+
|
|
16
|
+
## Convention
|
|
17
|
+
|
|
18
|
+
Scripts import from this package at module scope. No constant is defined inline in a script body — the hook enforces this at write time.
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Python package of named constants imported by the bugteam scripts. Each module holds the constants for one script; importing from this package keeps magic values out of the script bodies.
|
|
4
|
-
|
|
5
|
-
## Modules
|
|
6
|
-
|
|
7
|
-
| File | Constants for |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `probe_code_rules_enforcer_check_constants.py` | `probe_code_rules_enforcer_check.py` — enforcer module path and function name constants. |
|
|
10
|
-
| `reflow_skill_md_constants.py` | `reflow_skill_md.py` — line-length and formatting constants. |
|
|
11
|
-
| `windows_safe_rmtree_constants.py` | `windows_safe_rmtree.py` — retry count and wait constants. |
|
|
12
|
-
| `__init__.py` | Empty package marker. |
|
|
13
|
-
|
|
14
|
-
Preflight, fix_hookspath, and code_rules_gate constants live under package shared `pr_loop_shared_constants` with the shared implementations.
|
|
15
|
-
|
|
16
|
-
## Convention
|
|
17
|
-
|
|
18
|
-
Scripts import from this package at module scope. No constant is defined inline in a script body — the hook enforces this at write time.
|
|
1
|
+
@AGENTS.md
|
|
@@ -55,7 +55,7 @@ Open a PR per filed issue below and drive each to convergence.
|
|
|
55
55
|
## Safety — never do these
|
|
56
56
|
- Never run, merge, deploy, or sync the claude-dev-env publish pipeline. It is live in production (publishes to npm).
|
|
57
57
|
- Never run the host repo's automations.
|
|
58
|
-
-
|
|
58
|
+
- Keep `.cursor/BUGBOT.md` aligned with the repository's review rules.
|
|
59
59
|
|
|
60
60
|
## Base branch and verification
|
|
61
61
|
- Base branch: main
|