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,26 @@
|
|
|
1
|
+
# pr_converge_skill_constants
|
|
2
|
+
|
|
3
|
+
Importable Python constants module for the `pr-converge` skill. Script-specific constants (CLI args, markdown patterns, reflow settings) live in `scripts/pr_converge_scripts_constants/` and import from here.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `__init__.py` | Package marker |
|
|
10
|
+
| `constants.py` | All runtime and API constants: bot logins, review states, GH API path templates, bugbot/bugteam detection patterns, exit codes |
|
|
11
|
+
|
|
12
|
+
## Exported constants (selected)
|
|
13
|
+
|
|
14
|
+
| Constant | Purpose |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `CURSOR_BOT_LOGIN` | Login string for the Cursor bugbot reviewer |
|
|
17
|
+
| `COPILOT_REVIEWER_LOGIN` | Login string for the Copilot reviewer bot |
|
|
18
|
+
| `ALL_COPILOT_CLEAN_REVIEW_STATES` | Tuple of review states that count as clean for Copilot |
|
|
19
|
+
| `BUGBOT_DIRTY_BODY_REGEX` | Regex that matches a bugbot review body reporting findings |
|
|
20
|
+
| `GH_REVIEWS_PATH_TEMPLATE` | `gh api` path template for PR reviews |
|
|
21
|
+
| `GH_INLINE_COMMENTS_PATH_TEMPLATE` | `gh api` path template for PR inline comments |
|
|
22
|
+
|
|
23
|
+
## Conventions
|
|
24
|
+
|
|
25
|
+
- All path templates use `str.format(**kwargs)` with keys `owner`, `repo`, `number`.
|
|
26
|
+
- `packages/claude-dev-env/skills/pr-converge/scripts/pr_converge_scripts_constants/pr_converge_constants.py` re-exports everything here via `from pr_converge_skill_constants.constants import ...` so scripts can import from either location.
|
|
@@ -1,26 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Importable Python constants module for the `pr-converge` skill. Script-specific constants (CLI args, markdown patterns, reflow settings) live in `scripts/pr_converge_scripts_constants/` and import from here.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `__init__.py` | Package marker |
|
|
10
|
-
| `constants.py` | All runtime and API constants: bot logins, review states, GH API path templates, bugbot/bugteam detection patterns, exit codes |
|
|
11
|
-
|
|
12
|
-
## Exported constants (selected)
|
|
13
|
-
|
|
14
|
-
| Constant | Purpose |
|
|
15
|
-
|---|---|
|
|
16
|
-
| `CURSOR_BOT_LOGIN` | Login string for the Cursor bugbot reviewer |
|
|
17
|
-
| `COPILOT_REVIEWER_LOGIN` | Login string for the Copilot reviewer bot |
|
|
18
|
-
| `ALL_COPILOT_CLEAN_REVIEW_STATES` | Tuple of review states that count as clean for Copilot |
|
|
19
|
-
| `BUGBOT_DIRTY_BODY_REGEX` | Regex that matches a bugbot review body reporting findings |
|
|
20
|
-
| `GH_REVIEWS_PATH_TEMPLATE` | `gh api` path template for PR reviews |
|
|
21
|
-
| `GH_INLINE_COMMENTS_PATH_TEMPLATE` | `gh api` path template for PR inline comments |
|
|
22
|
-
|
|
23
|
-
## Conventions
|
|
24
|
-
|
|
25
|
-
- All path templates use `str.format(**kwargs)` with keys `owner`, `repo`, `number`.
|
|
26
|
-
- `packages/claude-dev-env/skills/pr-converge/scripts/pr_converge_scripts_constants/pr_converge_constants.py` re-exports everything here via `from pr_converge_skill_constants.constants import ...` so scripts can import from either location.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# pr-converge/reference
|
|
2
|
+
|
|
3
|
+
Reference documents for the `pr-converge` skill. These files define the per-tick step sequence, convergence gates, fix protocol, stop conditions, state schema, multi-PR orchestration, and examples.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `progress-checklist.md` | The per-tick eleven-step checklist (Step 0 open → Step 11 report), each step pointing to its spoke file |
|
|
10
|
+
| `per-tick.md` | Step-by-step procedure for one tick (resolve HEAD, run the internal CODE_REVIEW and BUGTEAM phases, then the terminal BUGBOT and COPILOT_WAIT gates, schedule next wakeup) |
|
|
11
|
+
| `convergence-gates.md` | Six gates that must all pass before the PR is marked ready for review |
|
|
12
|
+
| `fix-protocol.md` | pr-converge deltas on the `pr-fix-protocol` skill: multi-PR teammate obligations and the same-tick bugbot re-trigger rule |
|
|
13
|
+
| `ground-rules.md` | Non-negotiable constraints for the convergence loop |
|
|
14
|
+
| `stop-conditions.md` | Conditions that end the loop without convergence (cap reached, stuck, user stop) |
|
|
15
|
+
| `state-schema.md` | Fields in `pr-converge-state.json` and their meanings |
|
|
16
|
+
| `multi-pr-orchestration.md` | How to run the loop across multiple PRs in parallel |
|
|
17
|
+
| `examples.md` | Worked examples of tick sequences |
|
|
18
|
+
|
|
19
|
+
## Subdirectories
|
|
20
|
+
|
|
21
|
+
| Directory | Role |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `obstacles/` | Per-obstacle runbooks for known failure modes in the convergence loop |
|
|
24
|
+
|
|
25
|
+
## Conventions
|
|
26
|
+
|
|
27
|
+
- `per-tick.md` is the primary reference loaded during each tick. The pacing workflow lives in `../workflows/schedule-wakeup-loop.md`.
|
|
28
|
+
- Every gate in `convergence-gates.md` must produce evidence before the next gate runs.
|
|
@@ -1,28 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Reference documents for the `pr-converge` skill. These files define the per-tick step sequence, convergence gates, fix protocol, stop conditions, state schema, multi-PR orchestration, and examples.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `progress-checklist.md` | The per-tick eleven-step checklist (Step 0 open → Step 11 report), each step pointing to its spoke file |
|
|
10
|
-
| `per-tick.md` | Step-by-step procedure for one tick (resolve HEAD, run the internal CODE_REVIEW and BUGTEAM phases, then the terminal BUGBOT and COPILOT_WAIT gates, schedule next wakeup) |
|
|
11
|
-
| `convergence-gates.md` | Six gates that must all pass before the PR is marked ready for review |
|
|
12
|
-
| `fix-protocol.md` | pr-converge deltas on the `pr-fix-protocol` skill: multi-PR teammate obligations and the same-tick bugbot re-trigger rule |
|
|
13
|
-
| `ground-rules.md` | Non-negotiable constraints for the convergence loop |
|
|
14
|
-
| `stop-conditions.md` | Conditions that end the loop without convergence (cap reached, stuck, user stop) |
|
|
15
|
-
| `state-schema.md` | Fields in `pr-converge-state.json` and their meanings |
|
|
16
|
-
| `multi-pr-orchestration.md` | How to run the loop across multiple PRs in parallel |
|
|
17
|
-
| `examples.md` | Worked examples of tick sequences |
|
|
18
|
-
|
|
19
|
-
## Subdirectories
|
|
20
|
-
|
|
21
|
-
| Directory | Role |
|
|
22
|
-
|---|---|
|
|
23
|
-
| `obstacles/` | Per-obstacle runbooks for known failure modes in the convergence loop |
|
|
24
|
-
|
|
25
|
-
## Conventions
|
|
26
|
-
|
|
27
|
-
- `per-tick.md` is the primary reference loaded during each tick. The pacing workflow lives in `../workflows/schedule-wakeup-loop.md`.
|
|
28
|
-
- Every gate in `convergence-gates.md` must produce evidence before the next gate runs.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# pr-converge/reference/obstacles
|
|
2
|
+
|
|
3
|
+
Per-obstacle runbooks for known failure modes in the `pr-converge` convergence loop. Each file covers one specific obstacle: what causes it, how to detect it, and how to recover.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Obstacle |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `fix-post-replies.md` | Posting inline review replies fails or posts to the wrong thread |
|
|
10
|
+
| `fix-publish-summary.md` | Publishing the bugteam summary comment fails |
|
|
11
|
+
| `fix-push.md` | `git push` fails during a fix commit |
|
|
12
|
+
| `fix-read-filelines.md` | Reading file line ranges for a fix fails |
|
|
13
|
+
| `fix-reset-state.md` | State JSON becomes corrupt or inconsistent between ticks |
|
|
14
|
+
| `fix-resolve-threads.md` | Resolving inline comment threads via GraphQL fails |
|
|
15
|
+
| `fix-spawn-clean-coder.md` | Spawning the `clean-coder` subagent fails or produces no output |
|
|
16
|
+
| `fix-stage-commit.md` | Staging or committing a fix fails |
|
|
17
|
+
| `fix-trigger-bugbot.md` | Triggering Cursor Bugbot via an issue comment fails |
|
|
18
|
+
| `fix-write-test.md` | Writing a failing test before a fix fails |
|
|
19
|
+
|
|
20
|
+
## Conventions
|
|
21
|
+
|
|
22
|
+
- Each runbook is loaded on demand when the convergence loop hits that specific obstacle.
|
|
23
|
+
- Runbooks do not overlap with `per-tick.md`; they cover edge cases and recovery paths that fall outside the normal tick flow.
|
|
@@ -1,23 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Per-obstacle runbooks for known failure modes in the `pr-converge` convergence loop. Each file covers one specific obstacle: what causes it, how to detect it, and how to recover.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
| File | Obstacle |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `fix-post-replies.md` | Posting inline review replies fails or posts to the wrong thread |
|
|
10
|
-
| `fix-publish-summary.md` | Publishing the bugteam summary comment fails |
|
|
11
|
-
| `fix-push.md` | `git push` fails during a fix commit |
|
|
12
|
-
| `fix-read-filelines.md` | Reading file line ranges for a fix fails |
|
|
13
|
-
| `fix-reset-state.md` | State JSON becomes corrupt or inconsistent between ticks |
|
|
14
|
-
| `fix-resolve-threads.md` | Resolving inline comment threads via GraphQL fails |
|
|
15
|
-
| `fix-spawn-clean-coder.md` | Spawning the `clean-coder` subagent fails or produces no output |
|
|
16
|
-
| `fix-stage-commit.md` | Staging or committing a fix fails |
|
|
17
|
-
| `fix-trigger-bugbot.md` | Triggering Cursor Bugbot via an issue comment fails |
|
|
18
|
-
| `fix-write-test.md` | Writing a failing test before a fix fails |
|
|
19
|
-
|
|
20
|
-
## Conventions
|
|
21
|
-
|
|
22
|
-
- Each runbook is loaded on demand when the convergence loop hits that specific obstacle.
|
|
23
|
-
- Runbooks do not overlap with `per-tick.md`; they cover edge cases and recovery paths that fall outside the normal tick flow.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# pr-converge/scripts
|
|
2
|
+
|
|
3
|
+
Python helper scripts for the `pr-converge` skill, plus their tests and a PowerShell/AutoHotkey toolset for advancing Cursor agents.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `check_bugbot_ci.py` | Checks bugbot CI check-run status on a given SHA |
|
|
10
|
+
| `check_convergence.py` | Evaluates whether all convergence gates pass on the current HEAD |
|
|
11
|
+
| `check_convergence_availability.py` | Resolves reviewer waivers from flag, disk-authoritative settings (env fallback), and the availability/quota probe, with waived / enforced / probe_error_reason states |
|
|
12
|
+
| `check_convergence_gates.py` | GitHub REST leaf checks (review and Bugbot) the convergence gates call |
|
|
13
|
+
| `check_convergence_thread_gates.py` | GitHub GraphQL and REST leaf checks (review threads and pending reviewers) the convergence gates call |
|
|
14
|
+
| `check_pending_reviews.py` | Fetches pending review requests and reviewer states |
|
|
15
|
+
| `fetch_copilot_reviews.py` | Fetches Copilot reviewer reviews filtered to the current HEAD |
|
|
16
|
+
| `post_fix_reply.py` | Posts an inline reply to a review comment thread |
|
|
17
|
+
| `reflow_skill_md.py` | Reformats `SKILL.md` to enforce a line width limit |
|
|
18
|
+
| `README.md` | MCP tool reference for PR operations used by the scripts |
|
|
19
|
+
| `_pr_converge_path_setup.py` | Adds the scripts directory to `sys.path` for direct script imports |
|
|
20
|
+
| `conftest.py` | Puts the scripts directory on `sys.path` so pytest collects the suite |
|
|
21
|
+
| `test_check_bugbot_ci.py` | Tests for `check_bugbot_ci.py` |
|
|
22
|
+
| `test_check_convergence.py` | Tests for `check_convergence.py` |
|
|
23
|
+
| `test_check_convergence_availability.py` | Tests for `check_convergence_availability.py` |
|
|
24
|
+
| `test_check_convergence_contract.py` | Contract pins for `check_convergence.py` gate wiring |
|
|
25
|
+
| `test_check_convergence_gates.py` | Tests for `check_convergence_gates.py` |
|
|
26
|
+
| `test_check_convergence_thread_gates.py` | Tests for `check_convergence_thread_gates.py` |
|
|
27
|
+
| `test__pr_converge_path_setup.py` | Tests for `_pr_converge_path_setup.py` |
|
|
28
|
+
| `test_cursor_agents_continue.py` | Tests for the cursor-agents-continue toolset |
|
|
29
|
+
| `test_reflow_skill_md.py` | Tests for `reflow_skill_md.py` |
|
|
30
|
+
| `caller-window-pid.ps1` | Gets the PID of the calling terminal window |
|
|
31
|
+
| `cursor-agents-continue.ahk` | AutoHotkey script to advance Cursor agent prompts |
|
|
32
|
+
| `cursor-agents-continue.cmd` | CMD wrapper for the AHK script |
|
|
33
|
+
| `cursor-agents-continue-stop-others.ps1` | Stops other Cursor agents before advancing one |
|
|
34
|
+
| `cursor-agents-continue-caller.cmd` | Caller-side CMD wrapper |
|
|
35
|
+
|
|
36
|
+
## Subdirectories
|
|
37
|
+
|
|
38
|
+
| Directory | Role |
|
|
39
|
+
|---|---|
|
|
40
|
+
| `pr_converge_scripts_constants/` | Script-specific constants (re-exports skill constants plus adds reflow/CLI constants) |
|
|
41
|
+
|
|
42
|
+
## Conventions
|
|
43
|
+
|
|
44
|
+
- Scripts import constants from `pr_converge_scripts_constants.pr_converge_constants`, which re-exports everything from `pr_converge_skill_constants.constants`.
|
|
45
|
+
- Run scripts as `python ~/.claude/skills/pr-converge/scripts/<script>.py --owner <O> --repo <R> --pr-number <N>`.
|
|
46
|
+
- The `reflow_skill_md.py` script targets `SKILL.md` in the parent skill directory (resolved via `TARGET_SKILL_PATH` in `pr_converge_scripts_constants/reflow_skill_md_constants.py`).
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Python helper scripts for the `pr-converge` skill, plus their tests and a PowerShell/AutoHotkey toolset for advancing Cursor agents.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `check_bugbot_ci.py` | Checks bugbot CI check-run status on a given SHA |
|
|
10
|
-
| `check_convergence.py` | Evaluates whether all convergence gates pass on the current HEAD |
|
|
11
|
-
| `check_convergence_availability.py` | Resolves reviewer waivers from flag, disk-authoritative settings (env fallback), and the availability/quota probe, with waived / enforced / probe_error_reason states |
|
|
12
|
-
| `check_convergence_gates.py` | GitHub REST leaf checks (review and Bugbot) the convergence gates call |
|
|
13
|
-
| `check_convergence_thread_gates.py` | GitHub GraphQL and REST leaf checks (review threads and pending reviewers) the convergence gates call |
|
|
14
|
-
| `check_pending_reviews.py` | Fetches pending review requests and reviewer states |
|
|
15
|
-
| `fetch_copilot_reviews.py` | Fetches Copilot reviewer reviews filtered to the current HEAD |
|
|
16
|
-
| `post_fix_reply.py` | Posts an inline reply to a review comment thread |
|
|
17
|
-
| `reflow_skill_md.py` | Reformats `SKILL.md` to enforce a line width limit |
|
|
18
|
-
| `README.md` | MCP tool reference for PR operations used by the scripts |
|
|
19
|
-
| `_pr_converge_path_setup.py` | Adds the scripts directory to `sys.path` for direct script imports |
|
|
20
|
-
| `conftest.py` | Puts the scripts directory on `sys.path` so pytest collects the suite |
|
|
21
|
-
| `test_check_bugbot_ci.py` | Tests for `check_bugbot_ci.py` |
|
|
22
|
-
| `test_check_convergence.py` | Tests for `check_convergence.py` |
|
|
23
|
-
| `test_check_convergence_availability.py` | Tests for `check_convergence_availability.py` |
|
|
24
|
-
| `test_check_convergence_contract.py` | Contract pins for `check_convergence.py` gate wiring |
|
|
25
|
-
| `test_check_convergence_gates.py` | Tests for `check_convergence_gates.py` |
|
|
26
|
-
| `test_check_convergence_thread_gates.py` | Tests for `check_convergence_thread_gates.py` |
|
|
27
|
-
| `test__pr_converge_path_setup.py` | Tests for `_pr_converge_path_setup.py` |
|
|
28
|
-
| `test_cursor_agents_continue.py` | Tests for the cursor-agents-continue toolset |
|
|
29
|
-
| `test_reflow_skill_md.py` | Tests for `reflow_skill_md.py` |
|
|
30
|
-
| `caller-window-pid.ps1` | Gets the PID of the calling terminal window |
|
|
31
|
-
| `cursor-agents-continue.ahk` | AutoHotkey script to advance Cursor agent prompts |
|
|
32
|
-
| `cursor-agents-continue.cmd` | CMD wrapper for the AHK script |
|
|
33
|
-
| `cursor-agents-continue-stop-others.ps1` | Stops other Cursor agents before advancing one |
|
|
34
|
-
| `cursor-agents-continue-caller.cmd` | Caller-side CMD wrapper |
|
|
35
|
-
|
|
36
|
-
## Subdirectories
|
|
37
|
-
|
|
38
|
-
| Directory | Role |
|
|
39
|
-
|---|---|
|
|
40
|
-
| `pr_converge_scripts_constants/` | Script-specific constants (re-exports skill constants plus adds reflow/CLI constants) |
|
|
41
|
-
|
|
42
|
-
## Conventions
|
|
43
|
-
|
|
44
|
-
- Scripts import constants from `pr_converge_scripts_constants.pr_converge_constants`, which re-exports everything from `pr_converge_skill_constants.constants`.
|
|
45
|
-
- Run scripts as `python ~/.claude/skills/pr-converge/scripts/<script>.py --owner <O> --repo <R> --pr-number <N>`.
|
|
46
|
-
- The `reflow_skill_md.py` script targets `SKILL.md` in the parent skill directory (resolved via `TARGET_SKILL_PATH` in `pr_converge_scripts_constants/reflow_skill_md_constants.py`).
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# pr_converge_scripts_constants
|
|
2
|
+
|
|
3
|
+
Constants module for the `pr-converge` skill's Python scripts. Re-exports all runtime/API constants from the skill-level module and adds script-specific constants for CLI arguments, markdown patterns, and reflow settings.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `__init__.py` | Package marker |
|
|
10
|
+
| `pr_converge_constants.py` | Re-exports all constants from `pr_converge_skill_constants.constants` plus adds script-specific values |
|
|
11
|
+
| `reflow_skill_md_constants.py` | Constants for `reflow_skill_md.py`: line width limit, list item patterns, `TARGET_SKILL_PATH` |
|
|
12
|
+
| `convergence_gate_constants.py` | Constants for `check_convergence_gates.py`: short-SHA length, join separators, and the review-threads GraphQL query |
|
|
13
|
+
|
|
14
|
+
## Conventions
|
|
15
|
+
|
|
16
|
+
- `pr_converge_constants.py` uses `from pr_converge_skill_constants.constants import ...` (with `# noqa: F401`) to re-export everything so script files can import from one location.
|
|
17
|
+
- `reflow_skill_md_constants.py` resolves `TARGET_SKILL_PATH` from its own `__file__` path, pointing to `SKILL.md` three directories up.
|
|
18
|
+
- Script-specific regex patterns (ordered list items, bullet list items, unfinished markdown link targets, markdown reference definitions) live in `reflow_skill_md_constants.py`.
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Constants module for the `pr-converge` skill's Python scripts. Re-exports all runtime/API constants from the skill-level module and adds script-specific constants for CLI arguments, markdown patterns, and reflow settings.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `__init__.py` | Package marker |
|
|
10
|
-
| `pr_converge_constants.py` | Re-exports all constants from `pr_converge_skill_constants.constants` plus adds script-specific values |
|
|
11
|
-
| `reflow_skill_md_constants.py` | Constants for `reflow_skill_md.py`: line width limit, list item patterns, `TARGET_SKILL_PATH` |
|
|
12
|
-
| `convergence_gate_constants.py` | Constants for `check_convergence_gates.py`: short-SHA length, join separators, and the review-threads GraphQL query |
|
|
13
|
-
|
|
14
|
-
## Conventions
|
|
15
|
-
|
|
16
|
-
- `pr_converge_constants.py` uses `from pr_converge_skill_constants.constants import ...` (with `# noqa: F401`) to re-export everything so script files can import from one location.
|
|
17
|
-
- `reflow_skill_md_constants.py` resolves `TARGET_SKILL_PATH` from its own `__file__` path, pointing to `SKILL.md` three directories up.
|
|
18
|
-
- Script-specific regex patterns (ordered list items, bullet list items, unfinished markdown link targets, markdown reference definitions) live in `reflow_skill_md_constants.py`.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# pr-converge/workflows
|
|
2
|
+
|
|
3
|
+
Pacing workflow specification for the `pr-converge` loop.
|
|
4
|
+
|
|
5
|
+
## Key files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `schedule-wakeup-loop.md` | Specifies `ScheduleWakeup` call parameters, delays, and stop/convergence conditions for each tick |
|
|
10
|
+
|
|
11
|
+
## Conventions
|
|
12
|
+
|
|
13
|
+
- `per-tick.md` (in `../reference/`) references this file for Step 4 (schedule next wakeup). Read it before running Step 4.
|
|
14
|
+
- Default delay: `delaySeconds: 360`. Exception: BUGBOT inline-lag branch uses `delaySeconds: 90`.
|
|
15
|
+
- On convergence or a hard stop condition, omit the `ScheduleWakeup` call entirely.
|
|
16
|
+
- The `reason` field in each `ScheduleWakeup` call names what is being awaited, including the current `phase` and `bugbot_clean_at` SHA when set.
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Pacing workflow specification for the `pr-converge` loop.
|
|
4
|
-
|
|
5
|
-
## Key files
|
|
6
|
-
|
|
7
|
-
| File | Purpose |
|
|
8
|
-
|---|---|
|
|
9
|
-
| `schedule-wakeup-loop.md` | Specifies `ScheduleWakeup` call parameters, delays, and stop/convergence conditions for each tick |
|
|
10
|
-
|
|
11
|
-
## Conventions
|
|
12
|
-
|
|
13
|
-
- `per-tick.md` (in `../reference/`) references this file for Step 4 (schedule next wakeup). Read it before running Step 4.
|
|
14
|
-
- Default delay: `delaySeconds: 360`. Exception: BUGBOT inline-lag branch uses `delaySeconds: 90`.
|
|
15
|
-
- On convergence or a hard stop condition, omit the `ScheduleWakeup` call entirely.
|
|
16
|
-
- The `reason` field in each `ScheduleWakeup` call names what is being awaited, including the current `phase` and `bugbot_clean_at` SHA when set.
|
|
1
|
+
@AGENTS.md
|
|
@@ -10,7 +10,7 @@ Promotion records the controls applied to the real diff:
|
|
|
10
10
|
|
|
11
11
|
- review and verification under the [review guide](../../reviews/SKILL.md#review-workflow);
|
|
12
12
|
- the `privacy-hygiene` sweep for personal data and secrets;
|
|
13
|
-
- the pull-request review
|
|
13
|
+
- the pull-request review criteria and any PR-loop reviewers.
|
|
14
14
|
|
|
15
15
|
Say plainly: the write-time rule engine did not see this code; the verifier and review are what cover it.
|
|
16
16
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# rebase
|
|
2
|
+
|
|
3
|
+
Rebase a branch onto its base ref with verification gates that catch logically broken results before pushing.
|
|
4
|
+
|
|
5
|
+
**Trigger:** `/rebase`, "rebase this branch", "PR has merge conflicts", "rebase onto main", force-push to update remote branch history.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
The default failure mode for a rebase is shipping code that compiled but does not run. This skill prevents that by running real import checks, test collection, and symbol scans after every rebase — not just syntax validation.
|
|
10
|
+
|
|
11
|
+
## Key files
|
|
12
|
+
|
|
13
|
+
| File | Purpose |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `SKILL.md` | The complete skill — four phases (pre-rebase analysis, during rebase, verification gates, push). No companion files. |
|
|
16
|
+
|
|
17
|
+
## Four phases
|
|
18
|
+
|
|
19
|
+
| Phase | Key actions |
|
|
20
|
+
|---|---|
|
|
21
|
+
| 1 — Pre-rebase analysis | Resolve base via `gh pr view`, classify scenario (stacked/squash/long-lived), fetch fresh, scan commit messages for deleted/renamed symbols |
|
|
22
|
+
| 2 — During rebase | Verify `--skip` with a diff, audit auto-merged files with `git diff --name-only --diff-filter=M ORIG_HEAD` |
|
|
23
|
+
| 3 — Verification gates | `python -m compileall`, `pytest --collect-only -q`, targeted test run, reference scan for removals |
|
|
24
|
+
| 4 — Push | Explicit authorization required; `--force-with-lease=<branch>:<sha>` only; verify mergeability after push |
|
|
25
|
+
|
|
26
|
+
## Conventions
|
|
27
|
+
|
|
28
|
+
- Force-push requires explicit operator authorization every time — auto mode does not bypass this.
|
|
29
|
+
- `--force-with-lease=<branch>:<sha>` only; bare `--force` is refused.
|
|
30
|
+
- Never force-push `main`, `master`, `release/*`, `production`, or any multi-author branch.
|
|
31
|
+
- Symbol scans prefer Serena (`find_referencing_symbols`) then the Grep tool, then shell grep as a last resort.
|
|
32
|
+
- `ORIG_HEAD` is the correct ref for auto-merged file audits mid-rebase; `HEAD@{1}` shifts per step.
|
package/skills/rebase/CLAUDE.md
CHANGED
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Rebase a branch onto its base ref with verification gates that catch logically broken results before pushing.
|
|
4
|
-
|
|
5
|
-
**Trigger:** `/rebase`, "rebase this branch", "PR has merge conflicts", "rebase onto main", force-push to update remote branch history.
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
The default failure mode for a rebase is shipping code that compiled but does not run. This skill prevents that by running real import checks, test collection, and symbol scans after every rebase — not just syntax validation.
|
|
10
|
-
|
|
11
|
-
## Key files
|
|
12
|
-
|
|
13
|
-
| File | Purpose |
|
|
14
|
-
|---|---|
|
|
15
|
-
| `SKILL.md` | The complete skill — four phases (pre-rebase analysis, during rebase, verification gates, push). No companion files. |
|
|
16
|
-
|
|
17
|
-
## Four phases
|
|
18
|
-
|
|
19
|
-
| Phase | Key actions |
|
|
20
|
-
|---|---|
|
|
21
|
-
| 1 — Pre-rebase analysis | Resolve base via `gh pr view`, classify scenario (stacked/squash/long-lived), fetch fresh, scan commit messages for deleted/renamed symbols |
|
|
22
|
-
| 2 — During rebase | Verify `--skip` with a diff, audit auto-merged files with `git diff --name-only --diff-filter=M ORIG_HEAD` |
|
|
23
|
-
| 3 — Verification gates | `python -m compileall`, `pytest --collect-only -q`, targeted test run, reference scan for removals |
|
|
24
|
-
| 4 — Push | Explicit authorization required; `--force-with-lease=<branch>:<sha>` only; verify mergeability after push |
|
|
25
|
-
|
|
26
|
-
## Conventions
|
|
27
|
-
|
|
28
|
-
- Force-push requires explicit operator authorization every time — auto mode does not bypass this.
|
|
29
|
-
- `--force-with-lease=<branch>:<sha>` only; bare `--force` is refused.
|
|
30
|
-
- Never force-push `main`, `master`, `release/*`, `production`, or any multi-author branch.
|
|
31
|
-
- Symbol scans prefer Serena (`find_referencing_symbols`) then the Grep tool, then shell grep as a last resort.
|
|
32
|
-
- `ORIG_HEAD` is the correct ref for auto-merged file audits mid-rebase; `HEAD@{1}` shifts per step.
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# recall
|
|
2
|
+
|
|
3
|
+
Retrieves prior session context and decisions from the Obsidian vault for the current project.
|
|
4
|
+
|
|
5
|
+
**Trigger:** `/recall [search query or project name]`.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
Surfaces relevant session reports, decision notes, and research from the Obsidian vault before starting work. Prevents repeating decisions already made or missing known gotchas.
|
|
10
|
+
|
|
11
|
+
## Key files
|
|
12
|
+
|
|
13
|
+
| File | Purpose |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `SKILL.md` | The complete skill — six steps (resolve query, frontmatter search, content search, read top matches, present with attribution, handle no results). No companion files. |
|
|
16
|
+
|
|
17
|
+
## How the skill runs
|
|
18
|
+
|
|
19
|
+
1. Uses `$ARGUMENTS` as the search query, or infers the project name from conversation context.
|
|
20
|
+
2. Searches by frontmatter first (`mcp__obsidian__search_notes` with `searchFrontmatter: true`) to catch session reports and decision notes tagged with the project.
|
|
21
|
+
3. Falls back to content keyword search when frontmatter search returns few results.
|
|
22
|
+
4. Reads the top 3 most relevant notes via `mcp__obsidian__read_note`, preferring recent notes and decision summaries over raw research.
|
|
23
|
+
5. Reports each note with its path, date, relevant excerpts, and whether any decisions are marked `status: Superseded`.
|
|
24
|
+
6. States clearly when no vault history exists — never infers or invents history.
|
|
25
|
+
|
|
26
|
+
## Conventions
|
|
27
|
+
|
|
28
|
+
- `disable-model-invocation: true` is not set; this skill does invoke the model to synthesize results.
|
|
29
|
+
- The skill is read-only: it never writes to the vault.
|
|
30
|
+
- Companion to `/remember` (which writes decisions) and `/session-log` (which writes session reports).
|
package/skills/recall/CLAUDE.md
CHANGED
|
@@ -1,30 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Retrieves prior session context and decisions from the Obsidian vault for the current project.
|
|
4
|
-
|
|
5
|
-
**Trigger:** `/recall [search query or project name]`.
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
Surfaces relevant session reports, decision notes, and research from the Obsidian vault before starting work. Prevents repeating decisions already made or missing known gotchas.
|
|
10
|
-
|
|
11
|
-
## Key files
|
|
12
|
-
|
|
13
|
-
| File | Purpose |
|
|
14
|
-
|---|---|
|
|
15
|
-
| `SKILL.md` | The complete skill — six steps (resolve query, frontmatter search, content search, read top matches, present with attribution, handle no results). No companion files. |
|
|
16
|
-
|
|
17
|
-
## How the skill runs
|
|
18
|
-
|
|
19
|
-
1. Uses `$ARGUMENTS` as the search query, or infers the project name from conversation context.
|
|
20
|
-
2. Searches by frontmatter first (`mcp__obsidian__search_notes` with `searchFrontmatter: true`) to catch session reports and decision notes tagged with the project.
|
|
21
|
-
3. Falls back to content keyword search when frontmatter search returns few results.
|
|
22
|
-
4. Reads the top 3 most relevant notes via `mcp__obsidian__read_note`, preferring recent notes and decision summaries over raw research.
|
|
23
|
-
5. Reports each note with its path, date, relevant excerpts, and whether any decisions are marked `status: Superseded`.
|
|
24
|
-
6. States clearly when no vault history exists — never infers or invents history.
|
|
25
|
-
|
|
26
|
-
## Conventions
|
|
27
|
-
|
|
28
|
-
- `disable-model-invocation: true` is not set; this skill does invoke the model to synthesize results.
|
|
29
|
-
- The skill is read-only: it never writes to the vault.
|
|
30
|
-
- Companion to `/remember` (which writes decisions) and `/session-log` (which writes session reports).
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# remember
|
|
2
|
+
|
|
3
|
+
Saves a decision, gotcha, or architectural choice to the Obsidian vault as a structured note.
|
|
4
|
+
|
|
5
|
+
**Trigger:** User-initiated only. `/remember [what to remember]`.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
Writes a decision, fact, procedure, or gotcha to `decisions/[Project] - [Short Title].md` in the Obsidian vault. Each note carries structured frontmatter and a body shaped by its type, making it searchable and readable via `/recall`.
|
|
10
|
+
|
|
11
|
+
## Key files
|
|
12
|
+
|
|
13
|
+
| File | Purpose |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `SKILL.md` | The complete skill — six steps (parse input, classify type, infer project, generate title, write to vault, confirm). No companion files. |
|
|
16
|
+
|
|
17
|
+
## Four note types
|
|
18
|
+
|
|
19
|
+
| Type | Body format |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `decision` | Decision + Reasoning + Alternatives + Consequences |
|
|
22
|
+
| `gotcha` | Gotcha + Symptom + Fix |
|
|
23
|
+
| `procedural` | 1–3 clear sentences describing the how-to |
|
|
24
|
+
| `fact` | 1–3 clear sentences stating the fact |
|
|
25
|
+
|
|
26
|
+
## Conventions
|
|
27
|
+
|
|
28
|
+
- `disable-model-invocation: true` is set — runs without a secondary LLM call.
|
|
29
|
+
- Writes via `mcp__obsidian__write_note` only; never edits existing notes.
|
|
30
|
+
- Path pattern: `decisions/[Project] - [Short Title].md`.
|
|
31
|
+
- Companion to `/recall` (reads vault) and `/session-log` (triggers decision extraction at session end).
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Saves a decision, gotcha, or architectural choice to the Obsidian vault as a structured note.
|
|
4
|
-
|
|
5
|
-
**Trigger:** User-initiated only. `/remember [what to remember]`.
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
Writes a decision, fact, procedure, or gotcha to `decisions/[Project] - [Short Title].md` in the Obsidian vault. Each note carries structured frontmatter and a body shaped by its type, making it searchable and readable via `/recall`.
|
|
10
|
-
|
|
11
|
-
## Key files
|
|
12
|
-
|
|
13
|
-
| File | Purpose |
|
|
14
|
-
|---|---|
|
|
15
|
-
| `SKILL.md` | The complete skill — six steps (parse input, classify type, infer project, generate title, write to vault, confirm). No companion files. |
|
|
16
|
-
|
|
17
|
-
## Four note types
|
|
18
|
-
|
|
19
|
-
| Type | Body format |
|
|
20
|
-
|---|---|
|
|
21
|
-
| `decision` | Decision + Reasoning + Alternatives + Consequences |
|
|
22
|
-
| `gotcha` | Gotcha + Symptom + Fix |
|
|
23
|
-
| `procedural` | 1–3 clear sentences describing the how-to |
|
|
24
|
-
| `fact` | 1–3 clear sentences stating the fact |
|
|
25
|
-
|
|
26
|
-
## Conventions
|
|
27
|
-
|
|
28
|
-
- `disable-model-invocation: true` is set — runs without a secondary LLM call.
|
|
29
|
-
- Writes via `mcp__obsidian__write_note` only; never edits existing notes.
|
|
30
|
-
- Path pattern: `decisions/[Project] - [Short Title].md`.
|
|
31
|
-
- Companion to `/recall` (reads vault) and `/session-log` (triggers decision extraction at session end).
|
|
1
|
+
@AGENTS.md
|
package/skills/reviews/SKILL.md
CHANGED
|
@@ -8,7 +8,7 @@ description: >-
|
|
|
8
8
|
# Code Review Guide
|
|
9
9
|
|
|
10
10
|
Use this guide to evaluate a pull request or code change. Apply the repository's
|
|
11
|
-
|
|
11
|
+
the repository's checked-in review contract and `CODE_RULES.md` as its project-specific quality rubric.
|
|
12
12
|
|
|
13
13
|
## Review Judgment
|
|
14
14
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# session-log
|
|
2
|
+
|
|
3
|
+
Logs a session report as a self-contained HTML page in the Obsidian vault, publishes it with the `Artifact` tool, extracts unrecorded decisions, tidies the project session folder, and outputs a `/rename` command.
|
|
4
|
+
|
|
5
|
+
**Trigger:** `/session-log`, "journal this session", "log this work", "session report", "save session", "capture session", "document what we did".
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
Produces a self-contained HTML session report shaped to the session's character (feature build, incident, research, etc.) rather than a fixed template. The skill owns the vault path, session numbering, frontmatter contract, HTML composition and publishing, decision extraction, and folder hygiene.
|
|
10
|
+
|
|
11
|
+
## Key files
|
|
12
|
+
|
|
13
|
+
| File | Purpose |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `SKILL.md` | Hub — six steps, gotchas, backend detection, run-and-report checklist. |
|
|
16
|
+
| `templates/frontmatter.md` | The session-page frontmatter contract and the Step 3 notes block. |
|
|
17
|
+
|
|
18
|
+
## Six steps
|
|
19
|
+
|
|
20
|
+
1. **Backend detection** — headless vault (`ob --version` + `OBSIDIAN_VAULT_PATH`) then local vault (`~/.claude/vault/`). Session number from `[N]. *.html` and `[N]. *.md` files in the project folder.
|
|
21
|
+
2. **Session metadata** — project name, session number, session ID from `CLAUDE_CODE_SESSION_ID`, date, title.
|
|
22
|
+
3. **Compose and publish via the Artifact tool** — loads the `artifact-design` skill first, designs the shape for the session's character (e.g., a PR-writeup shape for feature builds, a timeline shape for incidents), writes the HTML, then publishes it with the `Artifact` tool using the fixed favicon `📓`.
|
|
23
|
+
4. **Vault context tracking** — two Edit calls set `vault_context_retrieved` and append a vault-context line, then redeploy via `Artifact` on the same `file_path` so the URL stays the same.
|
|
24
|
+
5. **Decision extraction** — scans conversation for unrecorded decisions; prompts user via `AskUserQuestion` before invoking `/remember`.
|
|
25
|
+
6. **Session tidy** — audits `.html` files in the project folder for naming and frontmatter; auto-fixes minor issues and redeploys via `Artifact`.
|
|
26
|
+
|
|
27
|
+
## Conventions
|
|
28
|
+
|
|
29
|
+
- Session reports use HTML — the Artifact tool publishes HTML or Markdown, and HTML gives the report designer more visual structure.
|
|
30
|
+
- `write_existing_file_blocker` rejects Write on existing paths — use Edit for all vault-context updates.
|
|
31
|
+
- The `Artifact` tool redeploys to the same URL on repeat calls with the same `file_path` within the current run — edits made in steps 3 and 5 to the session created this run never mint a new URL.
|
|
32
|
+
- Final step copies `/rename [Project] - [Primary Outcome]` to the clipboard via `pwsh Set-Clipboard`.
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Logs a session report as a self-contained HTML page in the Obsidian vault, publishes it with the `Artifact` tool, extracts unrecorded decisions, tidies the project session folder, and outputs a `/rename` command.
|
|
4
|
-
|
|
5
|
-
**Trigger:** `/session-log`, "journal this session", "log this work", "session report", "save session", "capture session", "document what we did".
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
Produces a self-contained HTML session report shaped to the session's character (feature build, incident, research, etc.) rather than a fixed template. The skill owns the vault path, session numbering, frontmatter contract, HTML composition and publishing, decision extraction, and folder hygiene.
|
|
10
|
-
|
|
11
|
-
## Key files
|
|
12
|
-
|
|
13
|
-
| File | Purpose |
|
|
14
|
-
|---|---|
|
|
15
|
-
| `SKILL.md` | Hub — six steps, gotchas, backend detection, run-and-report checklist. |
|
|
16
|
-
| `templates/frontmatter.md` | The session-page frontmatter contract and the Step 3 notes block. |
|
|
17
|
-
|
|
18
|
-
## Six steps
|
|
19
|
-
|
|
20
|
-
1. **Backend detection** — headless vault (`ob --version` + `OBSIDIAN_VAULT_PATH`) then local vault (`~/.claude/vault/`). Session number from `[N]. *.html` and `[N]. *.md` files in the project folder.
|
|
21
|
-
2. **Session metadata** — project name, session number, session ID from `CLAUDE_CODE_SESSION_ID`, date, title.
|
|
22
|
-
3. **Compose and publish via the Artifact tool** — loads the `artifact-design` skill first, designs the shape for the session's character (e.g., a PR-writeup shape for feature builds, a timeline shape for incidents), writes the HTML, then publishes it with the `Artifact` tool using the fixed favicon `📓`.
|
|
23
|
-
4. **Vault context tracking** — two Edit calls set `vault_context_retrieved` and append a vault-context line, then redeploy via `Artifact` on the same `file_path` so the URL stays the same.
|
|
24
|
-
5. **Decision extraction** — scans conversation for unrecorded decisions; prompts user via `AskUserQuestion` before invoking `/remember`.
|
|
25
|
-
6. **Session tidy** — audits `.html` files in the project folder for naming and frontmatter; auto-fixes minor issues and redeploys via `Artifact`.
|
|
26
|
-
|
|
27
|
-
## Conventions
|
|
28
|
-
|
|
29
|
-
- Session reports use HTML — the Artifact tool publishes HTML or Markdown, and HTML gives the report designer more visual structure.
|
|
30
|
-
- `write_existing_file_blocker` rejects Write on existing paths — use Edit for all vault-context updates.
|
|
31
|
-
- The `Artifact` tool redeploys to the same URL on repeat calls with the same `file_path` within the current run — edits made in steps 3 and 5 to the session created this run never mint a new URL.
|
|
32
|
-
- Final step copies `/rename [Project] - [Primary Outcome]` to the clipboard via `pwsh Set-Clipboard`.
|
|
1
|
+
@AGENTS.md
|