claude-dev-env 2.13.0 → 2.14.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.md +61 -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 +31 -0
- package/agents/CLAUDE.md +1 -31
- package/agents/clean-coder.md +6 -6
- package/agents/test_agent_frontmatter.py +4 -4
- 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 +23 -0
- package/commands/CLAUDE.md +1 -23
- package/commands/hook-log-extract.md +3 -3
- 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_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 +43 -0
- package/hooks/diagnostic/CLAUDE.md +1 -43
- package/hooks/diagnostic/hook_log_extractor.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_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/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/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/reference/honest-limitations.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/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
|
@@ -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
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# codex-review
|
|
2
|
+
|
|
3
|
+
Runs OpenAI Codex as a local PR or uncommitted-diff reviewer: opt-out gate, version/shape probe, target pick, classifying review (`codex exec … review --json`), outcome classification, and handoff of findings into `pr-fix-protocol`. Triggered by `/codex-review`, `codex review`, `run codex review`, `babysit codex review`, or `codex as a PR reviewer`.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
One Codex review pass per invocation. The skill owns sequence and skill-level classification (`down` / `clean` / `findings`). The headless wrapper is capture-only (`completed` / `codex_down` plus raw fields). Shared peers own opt-out parsing (`reviews_disabled.py` / `reviewer-gates`) and the fix sequence (`pr-fix-protocol`). Observed raw CLI surface, wrapper capture contract, probe signals, failure fixtures, auth modes, cloud runbook, and classification map live under `reference/cli-contract.md`; PR-loop wiring lives under `reference/loop-integration.md`.
|
|
8
|
+
|
|
9
|
+
## Key files
|
|
10
|
+
|
|
11
|
+
| File | Purpose |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `SKILL.md` | Flow skeleton: opt-out → probe → target → wrapper → classify → fix handoff; refusals; sub-skills table; ground rules. |
|
|
14
|
+
| `reference/cli-contract.md` | Wrapper entrypoint and argv; version/shape probe; success JSONL and findings parse; failure classes tied to fixtures; auth modes; cloud runbook. |
|
|
15
|
+
| `reference/loop-integration.md` | Gate placement in pr-converge and autoconverge; threshold rule; opt-out token; state fields; re-entry after fixes. |
|
|
16
|
+
| `scripts/run_codex_review.py` | Headless capture wrapper: probes, single-target argv, JSONL capture, `completed` / `codex_down`. |
|
|
17
|
+
| `scripts/test_run_codex_review.py` | Behavioral tests for `run_codex_review`. |
|
|
18
|
+
| `scripts/codex_down_classifier.py` | Maps a Codex run's exit code and stream text to a failure detail class and the gate outcome class (`completed` / `codex_down`). |
|
|
19
|
+
| `scripts/parse_codex_findings.py` | Parses reviewer text into findings: fenced JSON first, then the freeform bullet shape, then a single floor finding. |
|
|
20
|
+
| `scripts/codex_usage_probe.py` | Weekly usage probe CLI: app-server rate-limits read, null-on-unknown JSON report. |
|
|
21
|
+
| `scripts/test_codex_usage_probe.py` | Unit tests for the weekly usage probe and gate helper. |
|
|
22
|
+
| `scripts/codex_review_scripts_constants/run_constants.py` | Named constants package for skill scripts: binary name, flags, prompt, probe pattern, timeout, exit sentinels, JSONL keys, capture outcome labels. |
|
|
23
|
+
| `scripts/codex_review_scripts_constants/codex_usage_probe_constants.py` | Named constants for the weekly usage probe. |
|
|
24
|
+
|
|
25
|
+
## Subdirectories
|
|
26
|
+
|
|
27
|
+
| Directory | Role |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `reference/` | Progressive-disclosure pages for cli-contract and loop-integration. |
|
|
30
|
+
| `scripts/` | Capture wrapper, classifier, findings parser, weekly usage probe, tests, fixtures, and constants package. |
|
|
31
|
+
|
|
32
|
+
## Environment opt-out
|
|
33
|
+
|
|
34
|
+
Step 0 runs `reviews_disabled.py --reviewer codex` before any probe or review invoke.
|
|
35
|
+
|
|
36
|
+
| Gate exit | Meaning for this skill |
|
|
37
|
+
|---|---|
|
|
38
|
+
| 0 | Opt-out active — refuse with the opt-out line in `SKILL.md` and stop |
|
|
39
|
+
| 1 | Continue the flow |
|
|
40
|
+
| Any other | Blocker — stop; do not invent an opt-out refusal |
|
|
41
|
+
|
|
42
|
+
Set `CLAUDE_REVIEWS_DISABLED=codex` to disable. This package does not re-parse `CLAUDE_REVIEWS_DISABLED`; the shared gate owns the token parse.
|
|
43
|
+
|
|
44
|
+
## Scripts surface
|
|
45
|
+
|
|
46
|
+
`scripts/` holds the capture wrapper (`run_codex_review.py`), the down classifier (`codex_down_classifier.py`), the findings parser (`parse_codex_findings.py`), the weekly usage probe (`codex_usage_probe.py`), their tests, fixtures, and named constants. The wrapper returns capture fields only (`completed` / `codex_down`); agents map those fields to skill classes via the skill-class map and parse findings through `parse_codex_findings`. Classify only from a `codex exec … review --json` JSONL stream; do not invent a non-JSONL parse.
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Runs OpenAI Codex as a local PR or uncommitted-diff reviewer: opt-out gate, version/shape probe, target pick, classifying review (`codex exec … review --json`), outcome classification, and handoff of findings into `pr-fix-protocol`. Triggered by `/codex-review`, `codex review`, `run codex review`, `babysit codex review`, or `codex as a PR reviewer`.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
One Codex review pass per invocation. The skill owns sequence and skill-level classification (`down` / `clean` / `findings`). The headless wrapper is capture-only (`completed` / `codex_down` plus raw fields). Shared peers own opt-out parsing (`reviews_disabled.py` / `reviewer-gates`) and the fix sequence (`pr-fix-protocol`). Observed raw CLI surface, wrapper capture contract, probe signals, failure fixtures, auth modes, cloud runbook, and classification map live under `reference/cli-contract.md`; PR-loop wiring lives under `reference/loop-integration.md`.
|
|
8
|
-
|
|
9
|
-
## Key files
|
|
10
|
-
|
|
11
|
-
| File | Purpose |
|
|
12
|
-
|---|---|
|
|
13
|
-
| `SKILL.md` | Flow skeleton: opt-out → probe → target → wrapper → classify → fix handoff; refusals; sub-skills table; ground rules. |
|
|
14
|
-
| `reference/cli-contract.md` | Wrapper entrypoint and argv; version/shape probe; success JSONL and findings parse; failure classes tied to fixtures; auth modes; cloud runbook. |
|
|
15
|
-
| `reference/loop-integration.md` | Gate placement in pr-converge and autoconverge; threshold rule; opt-out token; state fields; re-entry after fixes. |
|
|
16
|
-
| `scripts/run_codex_review.py` | Headless capture wrapper: probes, single-target argv, JSONL capture, `completed` / `codex_down`. |
|
|
17
|
-
| `scripts/test_run_codex_review.py` | Behavioral tests for `run_codex_review`. |
|
|
18
|
-
| `scripts/codex_down_classifier.py` | Maps a Codex run's exit code and stream text to a failure detail class and the gate outcome class (`completed` / `codex_down`). |
|
|
19
|
-
| `scripts/parse_codex_findings.py` | Parses reviewer text into findings: fenced JSON first, then the freeform bullet shape, then a single floor finding. |
|
|
20
|
-
| `scripts/codex_usage_probe.py` | Weekly usage probe CLI: app-server rate-limits read, null-on-unknown JSON report. |
|
|
21
|
-
| `scripts/test_codex_usage_probe.py` | Unit tests for the weekly usage probe and gate helper. |
|
|
22
|
-
| `scripts/codex_review_scripts_constants/run_constants.py` | Named constants package for skill scripts: binary name, flags, prompt, probe pattern, timeout, exit sentinels, JSONL keys, capture outcome labels. |
|
|
23
|
-
| `scripts/codex_review_scripts_constants/codex_usage_probe_constants.py` | Named constants for the weekly usage probe. |
|
|
24
|
-
|
|
25
|
-
## Subdirectories
|
|
26
|
-
|
|
27
|
-
| Directory | Role |
|
|
28
|
-
|---|---|
|
|
29
|
-
| `reference/` | Progressive-disclosure pages for cli-contract and loop-integration. |
|
|
30
|
-
| `scripts/` | Capture wrapper, classifier, findings parser, weekly usage probe, tests, fixtures, and constants package. |
|
|
31
|
-
|
|
32
|
-
## Environment opt-out
|
|
33
|
-
|
|
34
|
-
Step 0 runs `reviews_disabled.py --reviewer codex` before any probe or review invoke.
|
|
35
|
-
|
|
36
|
-
| Gate exit | Meaning for this skill |
|
|
37
|
-
|---|---|
|
|
38
|
-
| 0 | Opt-out active — refuse with the opt-out line in `SKILL.md` and stop |
|
|
39
|
-
| 1 | Continue the flow |
|
|
40
|
-
| Any other | Blocker — stop; do not invent an opt-out refusal |
|
|
41
|
-
|
|
42
|
-
Set `CLAUDE_REVIEWS_DISABLED=codex` to disable. This package does not re-parse `CLAUDE_REVIEWS_DISABLED`; the shared gate owns the token parse.
|
|
43
|
-
|
|
44
|
-
## Scripts surface
|
|
45
|
-
|
|
46
|
-
`scripts/` holds the capture wrapper (`run_codex_review.py`), the down classifier (`codex_down_classifier.py`), the findings parser (`parse_codex_findings.py`), the weekly usage probe (`codex_usage_probe.py`), their tests, fixtures, and named constants. The wrapper returns capture fields only (`completed` / `codex_down`); agents map those fields to skill classes via the skill-class map and parse findings through `parse_codex_findings`. Classify only from a `codex exec … review --json` JSONL stream; do not invent a non-JSONL parse.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# codex-review/reference
|
|
2
|
+
|
|
3
|
+
Reference pages for the `codex-review` skill. `SKILL.md` cites these files for CLI contract and PR-loop integration detail.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `cli-contract.md` | Observed Codex CLI review surface: classifying `codex exec … review --json` path, wrapper capture (`completed` / `codex_down`), probe signals, success JSONL and findings parse, fixture-backed failure classes, skill-class map (`down` / `clean` / `findings`), auth modes, and cloud runbook. |
|
|
10
|
+
| `loop-integration.md` | Gate placement in pr-converge and autoconverge; threshold rule; opt-out token; state fields; target selection; skill-class vocabulary; findings handoff; re-entry after a fix push. |
|
|
11
|
+
|
|
12
|
+
## Conventions
|
|
13
|
+
|
|
14
|
+
- Each page is the stable home for one child workstream. Cross-references from `SKILL.md` use these paths.
|
|
15
|
+
- Keep one level deep: `SKILL.md` links here; orchestrator-owned detail links out to pr-converge / autoconverge pages rather than restating them.
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Reference pages for the `codex-review` skill. `SKILL.md` cites these files for CLI contract and PR-loop integration detail.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `cli-contract.md` | Observed Codex CLI review surface: classifying `codex exec … review --json` path, wrapper capture (`completed` / `codex_down`), probe signals, success JSONL and findings parse, fixture-backed failure classes, skill-class map (`down` / `clean` / `findings`), auth modes, and cloud runbook. |
|
|
10
|
-
| `loop-integration.md` | Gate placement in pr-converge and autoconverge; threshold rule; opt-out token; state fields; target selection; skill-class vocabulary; findings handoff; re-entry after a fix push. |
|
|
11
|
-
|
|
12
|
-
## Conventions
|
|
13
|
-
|
|
14
|
-
- Each page is the stable home for one child workstream. Cross-references from `SKILL.md` use these paths.
|
|
15
|
-
- Keep one level deep: `SKILL.md` links here; orchestrator-owned detail links out to pr-converge / autoconverge pages rather than restating them.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# codex-review/scripts/codex_review_scripts_constants
|
|
2
|
+
|
|
3
|
+
Python package of named constants imported by codex-review scripts. Importing from this package keeps magic values out of script bodies.
|
|
4
|
+
|
|
5
|
+
## Modules
|
|
6
|
+
|
|
7
|
+
| File | Constants for |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `__init__.py` | Package marker and package docstring. |
|
|
10
|
+
| `run_constants.py` | Binary name, flag strings, custom-instructions prompt, version-probe pattern, timeout default, decode/timeout exit sentinels, flag_token_pattern suffix (whole-token shape match), JSONL keys, and capture outcome class labels for `run_codex_review.py`. |
|
|
11
|
+
| `findings_constants.py` | Finding field keys, fenced-JSON and freeform patterns for `parse_codex_findings.py`. |
|
|
12
|
+
| `classifier_constants.py` | Failure class names and stream markers for `codex_down_classifier.py`. |
|
|
13
|
+
| `run_constants.py` | Binary name, flag strings, custom-instructions prompt, version-probe pattern, timeout default, decode/timeout exit sentinels, flag_token_pattern suffix (whole-token shape match), JSONL keys, JSONL capture filename and newline mode, and capture outcome class labels for `run_codex_review.py`. |
|
|
14
|
+
| `codex_usage_probe_constants.py` | The weekly-usage probe CLI: gate threshold, report JSON keys, app-server JSON-RPC surface, rate-limit field keys, weekly-window sizing, text-status parse patterns, source labels, and exit codes. |
|
|
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 codex-review scripts. Importing from this package keeps magic values out of script bodies.
|
|
4
|
-
|
|
5
|
-
## Modules
|
|
6
|
-
|
|
7
|
-
| File | Constants for |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `__init__.py` | Package marker and package docstring. |
|
|
10
|
-
| `run_constants.py` | Binary name, flag strings, custom-instructions prompt, version-probe pattern, timeout default, decode/timeout exit sentinels, flag_token_pattern suffix (whole-token shape match), JSONL keys, and capture outcome class labels for `run_codex_review.py`. |
|
|
11
|
-
| `findings_constants.py` | Finding field keys, fenced-JSON and freeform patterns for `parse_codex_findings.py`. |
|
|
12
|
-
| `classifier_constants.py` | Failure class names and stream markers for `codex_down_classifier.py`. |
|
|
13
|
-
| `run_constants.py` | Binary name, flag strings, custom-instructions prompt, version-probe pattern, timeout default, decode/timeout exit sentinels, flag_token_pattern suffix (whole-token shape match), JSONL keys, JSONL capture filename and newline mode, and capture outcome class labels for `run_codex_review.py`. |
|
|
14
|
-
| `codex_usage_probe_constants.py` | The weekly-usage probe CLI: gate threshold, report JSON keys, app-server JSON-RPC surface, rate-limit field keys, weekly-window sizing, text-status parse patterns, source labels, and exit codes. |
|
|
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
|
|
@@ -9,7 +9,7 @@ from pathlib import Path
|
|
|
9
9
|
|
|
10
10
|
SKILL_DIRECTORY = Path(__file__).resolve().parent
|
|
11
11
|
SKILL_PATH = SKILL_DIRECTORY / "SKILL.md"
|
|
12
|
-
PACKAGE_MAP_PATH = SKILL_DIRECTORY / "
|
|
12
|
+
PACKAGE_MAP_PATH = SKILL_DIRECTORY / "AGENTS.md"
|
|
13
13
|
REFERENCE_DIRECTORY = SKILL_DIRECTORY / "reference"
|
|
14
14
|
PACKAGE_ROOT = SKILL_DIRECTORY.parents[1]
|
|
15
15
|
PYPROJECT_PATH = PACKAGE_ROOT / "pyproject.toml"
|
|
@@ -131,7 +131,7 @@ def test_scripts_surface_names_capture_wrapper_and_constants() -> None:
|
|
|
131
131
|
skill_text = _read_skill_text()
|
|
132
132
|
package_map_text = PACKAGE_MAP_PATH.read_text(encoding="utf-8")
|
|
133
133
|
constants_map_text = (
|
|
134
|
-
SKILL_DIRECTORY / "scripts" / "codex_review_scripts_constants" / "
|
|
134
|
+
SKILL_DIRECTORY / "scripts" / "codex_review_scripts_constants" / "AGENTS.md"
|
|
135
135
|
).read_text(encoding="utf-8")
|
|
136
136
|
wrapper_path = SKILL_DIRECTORY / "scripts" / "run_codex_review.py"
|
|
137
137
|
|
|
@@ -168,7 +168,7 @@ def test_skill_body_stays_under_line_cap() -> None:
|
|
|
168
168
|
assert skill_line_count < MAXIMUM_SKILL_BODY_LINE_COUNT
|
|
169
169
|
|
|
170
170
|
|
|
171
|
-
def
|
|
171
|
+
def test_package_map_agents_md_exists() -> None:
|
|
172
172
|
package_map_text = PACKAGE_MAP_PATH.read_text(encoding="utf-8")
|
|
173
173
|
|
|
174
174
|
assert "codex-review" in package_map_text
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# copilot-review
|
|
2
|
+
|
|
3
|
+
Spawns a background subagent that polls the GitHub Copilot reviewer on the current PR, fixes unaddressed findings, and re-requests review each tick until the PR is clean. Triggered by `/copilot-review`, `watch copilot`, `babysit copilot review`, or `keep re-requesting copilot`.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
The main session gathers PR context (number, HEAD SHA, owner/repo, branch), spawns a self-terminating background subagent with a fully filled-in prompt, and returns control at once. The subagent loops on a 6-minute `ScheduleWakeup` cadence: fetch Copilot's latest review, TDD-fix any inline findings, push a commit, reply inline, resolve each addressed thread, re-request review. It stops on convergence, a persistent blocker, `TaskStop`, three consecutive ticks with no Copilot review at the current HEAD, or after 20 ticks.
|
|
8
|
+
|
|
9
|
+
## Key files
|
|
10
|
+
|
|
11
|
+
| File | Purpose |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `SKILL.md` | Four-step orchestration (opt-out check, gather PR context, spawn subagent, report to user), fix protocol, stop conditions, and ground rules (one commit per tick, honor hooks, preserve draft state, use `copilot-pull-request-reviewer[bot]` with the `[bot]` suffix). |
|
|
14
|
+
| `templates/subagent-prompt.md` | The background watcher prompt Step 3 passes to the subagent word for word, with placeholders for PR number, owner, repo, branch, and HEAD SHA. |
|
|
15
|
+
|
|
16
|
+
## Environment opt-out
|
|
17
|
+
|
|
18
|
+
Set `CLAUDE_REVIEWS_DISABLED=copilot` to disable. The skill checks this before spawning anything.
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Spawns a background subagent that polls the GitHub Copilot reviewer on the current PR, fixes unaddressed findings, and re-requests review each tick until the PR is clean. Triggered by `/copilot-review`, `watch copilot`, `babysit copilot review`, or `keep re-requesting copilot`.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
The main session gathers PR context (number, HEAD SHA, owner/repo, branch), spawns a self-terminating background subagent with a fully filled-in prompt, and returns control at once. The subagent loops on a 6-minute `ScheduleWakeup` cadence: fetch Copilot's latest review, TDD-fix any inline findings, push a commit, reply inline, resolve each addressed thread, re-request review. It stops on convergence, a persistent blocker, `TaskStop`, three consecutive ticks with no Copilot review at the current HEAD, or after 20 ticks.
|
|
8
|
-
|
|
9
|
-
## Key files
|
|
10
|
-
|
|
11
|
-
| File | Purpose |
|
|
12
|
-
|---|---|
|
|
13
|
-
| `SKILL.md` | Four-step orchestration (opt-out check, gather PR context, spawn subagent, report to user), fix protocol, stop conditions, and ground rules (one commit per tick, honor hooks, preserve draft state, use `copilot-pull-request-reviewer[bot]` with the `[bot]` suffix). |
|
|
14
|
-
| `templates/subagent-prompt.md` | The background watcher prompt Step 3 passes to the subagent word for word, with placeholders for PR number, owner, repo, branch, and HEAD SHA. |
|
|
15
|
-
|
|
16
|
-
## Environment opt-out
|
|
17
|
-
|
|
18
|
-
Set `CLAUDE_REVIEWS_DISABLED=copilot` to disable. The skill checks this before spawning anything.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# everything-search
|
|
2
|
+
|
|
3
|
+
Fast file search on Windows using the Everything (voidtools) `es.exe` command-line tool. Triggered by `find files`, `search for files`, `locate files`, or any request to use Everything.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Searches files by extension, name, date modified, size, or path against Everything's real-time index. Returns results instantly regardless of drive size. The skill covers the correct `es.exe` path, search operator syntax, multi-extension patterns, output options, and the junction/symlink note (Everything indexes real NTFS paths only — not junctions or mapped drives).
|
|
8
|
+
|
|
9
|
+
## Key file
|
|
10
|
+
|
|
11
|
+
| File | Purpose |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `SKILL.md` | Command syntax for WSL and Windows paths, all search operators (`ext:`, `dm:`, `size:`, wildcards, OR/AND/NOT), output flags (`-sort`, `-n`, `-size`), worked examples, and a junction/drive-mapping lookup table. |
|
|
14
|
+
|
|
15
|
+
## When to use
|
|
16
|
+
|
|
17
|
+
Use for file-system searches by name, extension, size, or date. For content searches use Grep. If a path is a junction or mapped drive and Everything returns nothing, translate to the real NTFS path or fall back to the Glob tool.
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Fast file search on Windows using the Everything (voidtools) `es.exe` command-line tool. Triggered by `find files`, `search for files`, `locate files`, or any request to use Everything.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Searches files by extension, name, date modified, size, or path against Everything's real-time index. Returns results instantly regardless of drive size. The skill covers the correct `es.exe` path, search operator syntax, multi-extension patterns, output options, and the junction/symlink note (Everything indexes real NTFS paths only — not junctions or mapped drives).
|
|
8
|
-
|
|
9
|
-
## Key file
|
|
10
|
-
|
|
11
|
-
| File | Purpose |
|
|
12
|
-
|---|---|
|
|
13
|
-
| `SKILL.md` | Command syntax for WSL and Windows paths, all search operators (`ext:`, `dm:`, `size:`, wildcards, OR/AND/NOT), output flags (`-sort`, `-n`, `-size`), worked examples, and a junction/drive-mapping lookup table. |
|
|
14
|
-
|
|
15
|
-
## When to use
|
|
16
|
-
|
|
17
|
-
Use for file-system searches by name, extension, size, or date. For content searches use Grep. If a path is a junction or mapped drive and Everything returns nothing, translate to the real NTFS path or fall back to the Glob tool.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# fresh-branch
|
|
2
|
+
|
|
3
|
+
Creates a new branch from fresh-fetched `origin/main` inside an isolated worktree under a configured root. Default: `<repo-root>/.claude/worktrees/<agent>/<branch-name>`. Optional absolute `--worktree-root` relocates the root (agent and branch still nest under it). Relative roots and path escape fail closed. Does not push, open a PR, or run `checkout -b` in the caller tree.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `SKILL.md` | Phases, checklist, configured-root contract, execute-vs-read for the CLI, gotchas |
|
|
10
|
+
| `scripts/create_fresh_branch.py` | Deterministic CLI: resolve configured root (fail closed before fetch), fetch base, `git worktree add -b`, JSON stdout |
|
|
11
|
+
| `scripts/fresh_branch_git_commands.py` | Git command helpers: fetch, ref checks, `git worktree add -b --no-track` |
|
|
12
|
+
| `scripts/test_create_fresh_branch.py` | Behavioral tests with temporary git repos (default root, explicit root, escape, collisions) |
|
|
13
|
+
| `scripts/test_fresh_branch_git_commands.py` | Behavioral tests for the git command helpers |
|
|
14
|
+
| `scripts/fresh_branch_scripts_constants/` | Constants package (`fresh_branch_cli_constants`) for CLI flags and error strings |
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Creates a new branch from fresh-fetched `origin/main` inside an isolated worktree under a configured root. Default: `<repo-root>/.claude/worktrees/<agent>/<branch-name>`. Optional absolute `--worktree-root` relocates the root (agent and branch still nest under it). Relative roots and path escape fail closed. Does not push, open a PR, or run `checkout -b` in the caller tree.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `SKILL.md` | Phases, checklist, configured-root contract, execute-vs-read for the CLI, gotchas |
|
|
10
|
-
| `scripts/create_fresh_branch.py` | Deterministic CLI: resolve configured root (fail closed before fetch), fetch base, `git worktree add -b`, JSON stdout |
|
|
11
|
-
| `scripts/fresh_branch_git_commands.py` | Git command helpers: fetch, ref checks, `git worktree add -b --no-track` |
|
|
12
|
-
| `scripts/test_create_fresh_branch.py` | Behavioral tests with temporary git repos (default root, explicit root, escape, collisions) |
|
|
13
|
-
| `scripts/test_fresh_branch_git_commands.py` | Behavioral tests for the git command helpers |
|
|
14
|
-
| `scripts/fresh_branch_scripts_constants/` | Constants package (`fresh_branch_cli_constants`) for CLI flags and error strings |
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# grok-spawn
|
|
2
|
+
|
|
3
|
+
**Trigger:** `/grok-spawn`, "spawn grok workers", "grok worker fleet", "run this with grok workers", "headless grok batch".
|
|
4
|
+
|
|
5
|
+
Orchestrator playbook for fleets of headless grok CLI workers. Composes
|
|
6
|
+
`grok_worker_preflight.py` and `spawn_grok_batch.py` by name. Holds no spawn
|
|
7
|
+
logic of its own. The calling session verifies results and owns every commit,
|
|
8
|
+
push, and GitHub post.
|
|
9
|
+
|
|
10
|
+
## Subdirectories
|
|
11
|
+
|
|
12
|
+
| Directory | Role |
|
|
13
|
+
|---|---|
|
|
14
|
+
| `reference/` | Prompt-part templates and tool-profile flag docs the hub cites on demand. |
|
|
15
|
+
|
|
16
|
+
## Key files
|
|
17
|
+
|
|
18
|
+
| File | Role |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `SKILL.md` | Entry protocol: when to use, gotchas, preflight → batch spec → launch → collect → verify. |
|
|
21
|
+
| `reference/worker-briefs.md` | Readonly investigation brief, build brief (edits and tests only), report contract. |
|
|
22
|
+
| `reference/flag-profiles.md` | Readonly vs build flag sets, shared flags, leader-socket and stagger rules, `--agent` note. |
|
|
23
|
+
|
|
24
|
+
## Entry point
|
|
25
|
+
|
|
26
|
+
No skill-local scripts. Runtime lives in `$HOME/.claude/scripts/`
|
|
27
|
+
(`grok_worker_preflight.py`, `spawn_grok_batch.py`, `grok_headless_runner.py`)
|
|
28
|
+
after install. Constants live in `scripts/dev_env_scripts_constants/`.
|
|
@@ -1,28 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
**Trigger:** `/grok-spawn`, "spawn grok workers", "grok worker fleet", "run this with grok workers", "headless grok batch".
|
|
4
|
-
|
|
5
|
-
Orchestrator playbook for fleets of headless grok CLI workers. Composes
|
|
6
|
-
`grok_worker_preflight.py` and `spawn_grok_batch.py` by name. Holds no spawn
|
|
7
|
-
logic of its own. The calling session verifies results and owns every commit,
|
|
8
|
-
push, and GitHub post.
|
|
9
|
-
|
|
10
|
-
## Subdirectories
|
|
11
|
-
|
|
12
|
-
| Directory | Role |
|
|
13
|
-
|---|---|
|
|
14
|
-
| `reference/` | Prompt-part templates and tool-profile flag docs the hub cites on demand. |
|
|
15
|
-
|
|
16
|
-
## Key files
|
|
17
|
-
|
|
18
|
-
| File | Role |
|
|
19
|
-
|---|---|
|
|
20
|
-
| `SKILL.md` | Entry protocol: when to use, gotchas, preflight → batch spec → launch → collect → verify. |
|
|
21
|
-
| `reference/worker-briefs.md` | Readonly investigation brief, build brief (edits and tests only), report contract. |
|
|
22
|
-
| `reference/flag-profiles.md` | Readonly vs build flag sets, shared flags, leader-socket and stagger rules, `--agent` note. |
|
|
23
|
-
|
|
24
|
-
## Entry point
|
|
25
|
-
|
|
26
|
-
No skill-local scripts. Runtime lives in `$HOME/.claude/scripts/`
|
|
27
|
-
(`grok_worker_preflight.py`, `spawn_grok_batch.py`, `grok_headless_runner.py`)
|
|
28
|
-
after install. Constants live in `scripts/dev_env_scripts_constants/`.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# pr-converge skill
|
|
2
|
+
|
|
3
|
+
Drives a draft PR to convergence by driving the internal passes to clean first — a code-review pass and a bugteam audit — then running Cursor Bugbot and Copilot as terminal confirmation gates, applying TDD fixes, posting inline replies, and re-triggering the external reviewers each tick until all are clean on the same HEAD and the PR is mergeable.
|
|
4
|
+
|
|
5
|
+
**Trigger:** `/pr-converge`, "drive PR to convergence", "loop bugbot and bugteam", "babysit bugbot and bugteam", "until both are clean", "converge this PR".
|
|
6
|
+
|
|
7
|
+
## Key files
|
|
8
|
+
|
|
9
|
+
| File | Purpose |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `SKILL.md` | Full tick workflow, pre-flight checks, state schema, budget-aware tick boundaries, stop conditions |
|
|
12
|
+
| `pr_converge_skill_constants/constants.py` | Runtime and API constants (bot logins, review states, GH API path templates, regex patterns) |
|
|
13
|
+
|
|
14
|
+
## Subdirectories
|
|
15
|
+
|
|
16
|
+
| Directory | Role |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `pr_converge_skill_constants/` | Importable constants module shared by skill scripts |
|
|
19
|
+
| `reference/` | Per-tick steps, convergence gates, fix protocol, obstacle runbooks, state schema, stop conditions, examples |
|
|
20
|
+
| `scripts/` | Python helpers (bugbot check, convergence check, Copilot review fetcher, fix-reply poster, reflow tool) and their tests |
|
|
21
|
+
| `workflows/` | ScheduleWakeup loop pacing specification (`pacer=schedule_wakeup`) |
|
|
22
|
+
|
|
23
|
+
## Conventions
|
|
24
|
+
|
|
25
|
+
- Pre-flight selects a pacer via `select_converge_pacer.py`: `schedule_wakeup` or `portable`. Missing `ScheduleWakeup` selects portable — it does not abort the skill.
|
|
26
|
+
- On `pacer=schedule_wakeup`, each invocation runs one tick and the next advances via `ScheduleWakeup`. On `pacer=portable`, the session runs ticks continuously (continue or in-session poll) until convergence, a stop condition, or a budget handoff.
|
|
27
|
+
- Loop state persists to `$CLAUDE_JOB_DIR/pr-converge-state.json` between ticks.
|
|
28
|
+
- Isolation uses `EnterWorktree` when present; otherwise the portable driver git worktree path, then `preflight_worktree.py`.
|
|
29
|
+
- All findings and PR reports state verified facts only — no hedging language.
|
|
30
|
+
- The GitHub MCP (`pull_request_read`, `pull_request_review_write`) is the primary path for PR inspection; `gh api` is the fallback.
|
|
31
|
+
- Three step-scoped agents (`fix_executor`, `thread_sweep`, `copilot_watch`) persist across ticks via the `persistent_agents` map in loop state; each tick resumes them with `SendMessage` and spawns a fresh named agent when a stored id is dead.
|
|
32
|
+
- The tick delegates shared mechanics to three sibling sub-skills: `reviewer-gates` (opt-out, Copilot quota, Bugbot trigger), `pr-fix-protocol` (fix sequence + unresolved-thread sweep), and `pr-loop-lifecycle` (run open/close). Target resolution happens inline in `reference/per-tick.md` Steps 1 and 1.5. Audit posting follows the `_shared/pr-loop/post-audit-thread-contract.md` contract, run through `_shared/pr-loop/scripts/post_audit_thread.py`.
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Drives a draft PR to convergence by driving the internal passes to clean first — a code-review pass and a bugteam audit — then running Cursor Bugbot and Copilot as terminal confirmation gates, applying TDD fixes, posting inline replies, and re-triggering the external reviewers each tick until all are clean on the same HEAD and the PR is mergeable.
|
|
4
|
-
|
|
5
|
-
**Trigger:** `/pr-converge`, "drive PR to convergence", "loop bugbot and bugteam", "babysit bugbot and bugteam", "until both are clean", "converge this PR".
|
|
6
|
-
|
|
7
|
-
## Key files
|
|
8
|
-
|
|
9
|
-
| File | Purpose |
|
|
10
|
-
|---|---|
|
|
11
|
-
| `SKILL.md` | Full tick workflow, pre-flight checks, state schema, budget-aware tick boundaries, stop conditions |
|
|
12
|
-
| `pr_converge_skill_constants/constants.py` | Runtime and API constants (bot logins, review states, GH API path templates, regex patterns) |
|
|
13
|
-
|
|
14
|
-
## Subdirectories
|
|
15
|
-
|
|
16
|
-
| Directory | Role |
|
|
17
|
-
|---|---|
|
|
18
|
-
| `pr_converge_skill_constants/` | Importable constants module shared by skill scripts |
|
|
19
|
-
| `reference/` | Per-tick steps, convergence gates, fix protocol, obstacle runbooks, state schema, stop conditions, examples |
|
|
20
|
-
| `scripts/` | Python helpers (bugbot check, convergence check, Copilot review fetcher, fix-reply poster, reflow tool) and their tests |
|
|
21
|
-
| `workflows/` | ScheduleWakeup loop pacing specification (`pacer=schedule_wakeup`) |
|
|
22
|
-
|
|
23
|
-
## Conventions
|
|
24
|
-
|
|
25
|
-
- Pre-flight selects a pacer via `select_converge_pacer.py`: `schedule_wakeup` or `portable`. Missing `ScheduleWakeup` selects portable — it does not abort the skill.
|
|
26
|
-
- On `pacer=schedule_wakeup`, each invocation runs one tick and the next advances via `ScheduleWakeup`. On `pacer=portable`, the session runs ticks continuously (continue or in-session poll) until convergence, a stop condition, or a budget handoff.
|
|
27
|
-
- Loop state persists to `$CLAUDE_JOB_DIR/pr-converge-state.json` between ticks.
|
|
28
|
-
- Isolation uses `EnterWorktree` when present; otherwise the portable driver git worktree path, then `preflight_worktree.py`.
|
|
29
|
-
- All findings and PR reports state verified facts only — no hedging language.
|
|
30
|
-
- The GitHub MCP (`pull_request_read`, `pull_request_review_write`) is the primary path for PR inspection; `gh api` is the fallback.
|
|
31
|
-
- Three step-scoped agents (`fix_executor`, `thread_sweep`, `copilot_watch`) persist across ticks via the `persistent_agents` map in loop state; each tick resumes them with `SendMessage` and spawns a fresh named agent when a stored id is dead.
|
|
32
|
-
- The tick delegates shared mechanics to three sibling sub-skills: `reviewer-gates` (opt-out, Copilot quota, Bugbot trigger), `pr-fix-protocol` (fix sequence + unresolved-thread sweep), and `pr-loop-lifecycle` (run open/close). Target resolution happens inline in `reference/per-tick.md` Steps 1 and 1.5. Audit posting follows the `_shared/pr-loop/post-audit-thread-contract.md` contract, run through `_shared/pr-loop/scripts/post_audit_thread.py`.
|
|
1
|
+
@AGENTS.md
|