claude-dev-env 2.13.0 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +135 -0
- package/CLAUDE.md +1 -57
- package/_shared/AGENTS.md +15 -0
- package/_shared/CLAUDE.md +1 -15
- package/_shared/advisor/AGENTS.md +22 -0
- package/_shared/advisor/CLAUDE.md +1 -22
- package/_shared/pr-loop/AGENTS.md +27 -0
- package/_shared/pr-loop/CLAUDE.md +1 -27
- package/_shared/pr-loop/scripts/AGENTS.md +35 -0
- package/_shared/pr-loop/scripts/CLAUDE.md +1 -35
- package/_shared/pr-loop/scripts/code_rules_gate_parts/AGENTS.md +42 -0
- package/_shared/pr-loop/scripts/code_rules_gate_parts/CLAUDE.md +1 -42
- package/_shared/pr-loop/scripts/pr_loop_shared_constants/AGENTS.md +26 -0
- package/_shared/pr-loop/scripts/pr_loop_shared_constants/CLAUDE.md +1 -26
- package/_shared/pr-loop/scripts/tests/AGENTS.md +44 -0
- package/_shared/pr-loop/scripts/tests/CLAUDE.md +1 -44
- package/_shared/process-tree/AGENTS.md +41 -0
- package/_shared/process-tree/CLAUDE.md +1 -41
- package/agents/AGENTS.md +26 -0
- package/agents/CLAUDE.md +1 -31
- package/agents/clean-coder.md +6 -6
- package/agents/test_agent_frontmatter.py +11 -11
- package/audit-rubrics/AGENTS.md +43 -0
- package/audit-rubrics/CLAUDE.md +1 -43
- package/audit-rubrics/category_rubrics/AGENTS.md +37 -0
- package/audit-rubrics/category_rubrics/CLAUDE.md +1 -37
- package/audit-rubrics/prompts/AGENTS.md +37 -0
- package/audit-rubrics/prompts/CLAUDE.md +1 -37
- package/bin/AGENTS.md +112 -0
- package/bin/CLAUDE.md +1 -112
- package/bin/ever-shipped-skills.mjs +1 -0
- package/bin/install-constants.mjs +6 -7
- package/bin/install.mjs +24 -5
- package/bin/install.test.mjs +34 -0
- package/commands/AGENTS.md +13 -0
- package/commands/CLAUDE.md +1 -23
- package/docs/AGENTS.md +32 -0
- package/docs/CLAUDE.md +1 -32
- package/docs/CODE_RULES.md +1 -1
- package/docs/imagegen.md +22 -0
- package/docs/references/AGENTS.md +17 -0
- package/docs/references/CLAUDE.md +1 -17
- package/hooks/AGENTS.md +31 -0
- package/hooks/CLAUDE.md +1 -31
- package/hooks/_gh_pr_author_swap_utils.py +14 -0
- package/hooks/advisory/AGENTS.md +16 -0
- package/hooks/advisory/CLAUDE.md +1 -16
- package/hooks/blocking/AGENTS.md +123 -0
- package/hooks/blocking/CLAUDE.md +1 -123
- package/hooks/blocking/claude_md_orphan_file_blocker_parts/AGENTS.md +28 -0
- package/hooks/blocking/claude_md_orphan_file_blocker_parts/CLAUDE.md +1 -28
- package/hooks/blocking/code_rules_banned_identifiers.py +1 -1
- package/hooks/blocking/code_rules_dead_module_constant.py +149 -37
- package/hooks/blocking/code_rules_probe_chains.py +6 -2
- package/hooks/blocking/config/AGENTS.md +10 -0
- package/hooks/blocking/config/CLAUDE.md +1 -10
- package/hooks/blocking/gh_pr_author_restore.py +7 -2
- package/hooks/blocking/intent_only_ending_blocker.py +11 -16
- package/hooks/blocking/inventory_intent_records/AGENTS.md +26 -0
- package/hooks/blocking/inventory_intent_records/CLAUDE.md +1 -26
- package/hooks/blocking/package_inventory_stale_blocker_parts/AGENTS.md +26 -0
- package/hooks/blocking/package_inventory_stale_blocker_parts/CLAUDE.md +1 -26
- package/hooks/blocking/pii_prevention_blocker_parts/AGENTS.md +24 -0
- package/hooks/blocking/pii_prevention_blocker_parts/CLAUDE.md +1 -24
- package/hooks/blocking/tdd_enforcer_parts/AGENTS.md +30 -0
- package/hooks/blocking/tdd_enforcer_parts/CLAUDE.md +1 -30
- package/hooks/blocking/test_claude_md_orphan_file_blocker.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_banned_prefixes.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_dead_module_constant.py +171 -0
- package/hooks/blocking/test_code_rules_enforcer_magic_allowlist.py +1 -1
- package/hooks/blocking/test_gh_pr_author_restore.py +2 -1
- package/hooks/blocking/test_intent_only_ending_blocker.py +4 -0
- package/hooks/diagnostic/AGENTS.md +75 -0
- package/hooks/diagnostic/CLAUDE.md +1 -43
- package/hooks/diagnostic/hook_log_extractor.py +2 -2
- package/hooks/diagnostic/hook_log_init.py +2 -2
- package/hooks/diagnostic/migrations/AGENTS.md +16 -0
- package/hooks/diagnostic/migrations/CLAUDE.md +1 -16
- package/hooks/diagnostic/queries/AGENTS.md +19 -0
- package/hooks/diagnostic/queries/CLAUDE.md +1 -19
- package/hooks/diagnostic/test_hook_log_extractor.py +2 -2
- package/hooks/git-hooks/AGENTS.md +31 -0
- package/hooks/git-hooks/CLAUDE.md +1 -31
- package/hooks/git-hooks/git_hooks_constants/AGENTS.md +21 -0
- package/hooks/git-hooks/git_hooks_constants/CLAUDE.md +1 -21
- package/hooks/git-hooks/git_hooks_constants/__init__.py +4 -6
- package/hooks/git-hooks/pre_push.py +47 -34
- package/hooks/git-hooks/test_pre_push.py +111 -7
- package/hooks/hooks_constants/AGENTS.md +104 -0
- package/hooks/hooks_constants/CLAUDE.md +1 -104
- package/hooks/hooks_constants/hook_log_extractor_constants.py +1 -2
- package/hooks/hooks_constants/task_list_loop_starter_constants.py +4 -3
- package/hooks/hooks_constants/working_style_prompt_constants.py +29 -20
- package/hooks/lifecycle/AGENTS.md +18 -0
- package/hooks/lifecycle/CLAUDE.md +1 -18
- package/hooks/observability/AGENTS.md +20 -0
- package/hooks/observability/CLAUDE.md +1 -20
- package/hooks/session/AGENTS.md +33 -0
- package/hooks/session/CLAUDE.md +1 -33
- package/hooks/session/gh_pr_author_session_cleanup.py +7 -2
- package/hooks/session/task_list_loop_starter.py +3 -3
- package/hooks/session/test_gh_pr_author_session_cleanup.py +2 -1
- package/hooks/session/test_task_list_loop_starter.py +10 -2
- package/hooks/session/test_working_style_prompt.py +9 -4
- package/hooks/validation/AGENTS.md +20 -0
- package/hooks/validation/CLAUDE.md +1 -20
- package/hooks/validators/AGENTS.md +51 -0
- package/hooks/validators/CLAUDE.md +1 -51
- package/hooks/validators/health_check.py +52 -19
- package/hooks/validators/python_style_checks.py +1 -1
- package/hooks/validators/test_health_check.py +112 -27
- package/hooks/workflow/AGENTS.md +16 -0
- package/hooks/workflow/CLAUDE.md +1 -16
- package/installable-surfaces.manifest.json +1 -0
- package/output-styles/AGENTS.md +15 -0
- package/output-styles/CLAUDE.md +1 -15
- package/package.json +2 -1
- package/rules/AGENTS.md +61 -0
- package/rules/CLAUDE.md +1 -61
- package/rules/code-standards.md +5 -9
- package/rules/doc-prose-cuts.md +1 -1
- package/scripts/AGENTS.md +62 -0
- package/scripts/CLAUDE.md +1 -62
- package/scripts/codex_compat_materializer.py +4 -0
- package/scripts/dev_env_scripts_constants/AGENTS.md +21 -0
- package/scripts/dev_env_scripts_constants/CLAUDE.md +1 -21
- package/scripts/sync_to_cursor/AGENTS.md +23 -0
- package/scripts/sync_to_cursor/CLAUDE.md +1 -23
- package/scripts/test_active_capability_references.py +2 -2
- package/scripts/test_validate_instruction_pairs.py +90 -0
- package/scripts/test_verify_installable_package.py +5 -1
- package/scripts/tests/AGENTS.md +33 -0
- package/scripts/tests/CLAUDE.md +1 -33
- package/scripts/tests/test_codex_compat_materializer.py +36 -1
- package/scripts/validate_instruction_pairs.py +183 -0
- package/skills/AGENTS.md +72 -0
- package/skills/CLAUDE.md +1 -72
- package/skills/_shared/AGENTS.md +44 -0
- package/skills/_shared/CLAUDE.md +1 -44
- package/skills/_shared/advisor/AGENTS.md +9 -0
- package/skills/_shared/advisor/CLAUDE.md +1 -9
- package/skills/_shared/pr-loop/AGENTS.md +50 -0
- package/skills/_shared/pr-loop/CLAUDE.md +1 -50
- package/skills/_shared/pr-loop/prompts/AGENTS.md +9 -0
- package/skills/_shared/pr-loop/prompts/CLAUDE.md +1 -9
- package/skills/_shared/pr-loop/scripts/AGENTS.md +35 -0
- package/skills/_shared/pr-loop/scripts/CLAUDE.md +1 -35
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/AGENTS.md +24 -0
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/CLAUDE.md +1 -24
- package/skills/anthropic-plan/AGENTS.md +34 -0
- package/skills/anthropic-plan/CLAUDE.md +1 -34
- package/skills/anthropic-plan/SKILL.md +1 -1
- package/skills/anthropic-plan/scripts/AGENTS.md +11 -0
- package/skills/anthropic-plan/scripts/CLAUDE.md +1 -11
- package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +16 -0
- package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/CLAUDE.md +1 -16
- package/skills/anthropic-plan/templates/AGENTS.md +13 -0
- package/skills/anthropic-plan/templates/CLAUDE.md +1 -13
- package/skills/anthropic-plan/test_skill_contract.py +8 -6
- package/skills/anthropic-plan/workflow/AGENTS.md +14 -0
- package/skills/anthropic-plan/workflow/CLAUDE.md +1 -14
- package/skills/auditing-claude-config/AGENTS.md +21 -0
- package/skills/auditing-claude-config/CLAUDE.md +1 -21
- package/skills/autoconverge/AGENTS.md +36 -0
- package/skills/autoconverge/CLAUDE.md +1 -36
- package/skills/autoconverge/reference/AGENTS.md +16 -0
- package/skills/autoconverge/reference/CLAUDE.md +1 -16
- package/skills/autoconverge/workflow/AGENTS.md +26 -0
- package/skills/autoconverge/workflow/CLAUDE.md +1 -26
- package/skills/autoconverge/workflow/autoconverge_report_constants/AGENTS.md +16 -0
- package/skills/autoconverge/workflow/autoconverge_report_constants/CLAUDE.md +1 -16
- package/skills/bugteam/AGENTS.md +30 -0
- package/skills/bugteam/CLAUDE.md +1 -30
- package/skills/bugteam/reference/AGENTS.md +20 -0
- package/skills/bugteam/reference/CLAUDE.md +1 -20
- package/skills/bugteam/reference/obstacles/AGENTS.md +24 -0
- package/skills/bugteam/reference/obstacles/CLAUDE.md +1 -24
- package/skills/bugteam/scripts/AGENTS.md +30 -0
- package/skills/bugteam/scripts/CLAUDE.md +1 -30
- package/skills/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +18 -0
- package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +1 -18
- package/skills/closeout/reference/handoff-prompt-template.md +1 -1
- package/skills/codex-review/AGENTS.md +46 -0
- package/skills/codex-review/CLAUDE.md +1 -46
- package/skills/codex-review/reference/AGENTS.md +15 -0
- package/skills/codex-review/reference/CLAUDE.md +1 -15
- package/skills/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +18 -0
- package/skills/codex-review/scripts/codex_review_scripts_constants/CLAUDE.md +1 -18
- package/skills/codex-review/test_skill_scaffold.py +3 -3
- package/skills/copilot-review/AGENTS.md +18 -0
- package/skills/copilot-review/CLAUDE.md +1 -18
- package/skills/everything-search/AGENTS.md +17 -0
- package/skills/everything-search/CLAUDE.md +1 -17
- package/skills/fresh-branch/AGENTS.md +14 -0
- package/skills/fresh-branch/CLAUDE.md +1 -14
- package/skills/grok-spawn/AGENTS.md +28 -0
- package/skills/grok-spawn/CLAUDE.md +1 -28
- package/skills/pr-converge/AGENTS.md +32 -0
- package/skills/pr-converge/CLAUDE.md +1 -32
- package/skills/pr-converge/pr_converge_skill_constants/AGENTS.md +26 -0
- package/skills/pr-converge/pr_converge_skill_constants/CLAUDE.md +1 -26
- package/skills/pr-converge/reference/AGENTS.md +28 -0
- package/skills/pr-converge/reference/CLAUDE.md +1 -28
- package/skills/pr-converge/reference/obstacles/AGENTS.md +23 -0
- package/skills/pr-converge/reference/obstacles/CLAUDE.md +1 -23
- package/skills/pr-converge/scripts/AGENTS.md +46 -0
- package/skills/pr-converge/scripts/CLAUDE.md +1 -46
- package/skills/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +18 -0
- package/skills/pr-converge/scripts/pr_converge_scripts_constants/CLAUDE.md +1 -18
- package/skills/pr-converge/workflows/AGENTS.md +16 -0
- package/skills/pr-converge/workflows/CLAUDE.md +1 -16
- package/skills/prototype/SKILL.md +1 -2
- package/skills/prototype/reference/honest-limitations.md +1 -1
- package/skills/prototype/reference/promotion-tasks.md +1 -1
- package/skills/prototype/workflows/promotion.md +1 -1
- package/skills/rebase/AGENTS.md +32 -0
- package/skills/rebase/CLAUDE.md +1 -32
- package/skills/recall/AGENTS.md +30 -0
- package/skills/recall/CLAUDE.md +1 -30
- package/skills/remember/AGENTS.md +31 -0
- package/skills/remember/CLAUDE.md +1 -31
- package/skills/reviews/SKILL.md +1 -1
- package/skills/session-log/AGENTS.md +32 -0
- package/skills/session-log/CLAUDE.md +1 -32
- package/skills/session-tidy/AGENTS.md +36 -0
- package/skills/session-tidy/CLAUDE.md +1 -36
- package/skills/skill-builder/AGENTS.md +49 -0
- package/skills/skill-builder/CLAUDE.md +1 -49
- package/skills/skill-builder/references/AGENTS.md +25 -0
- package/skills/skill-builder/references/CLAUDE.md +1 -25
- package/skills/skill-builder/references/deterministic-elements.md +1 -1
- package/skills/skill-builder/templates/AGENTS.md +14 -0
- package/skills/skill-builder/templates/CLAUDE.md +1 -14
- package/skills/skill-builder/workflows/AGENTS.md +19 -0
- package/skills/skill-builder/workflows/CLAUDE.md +1 -19
- package/skills/task-build/AGENTS.md +29 -0
- package/skills/task-build/CLAUDE.md +1 -29
- package/skills/update/AGENTS.md +38 -0
- package/skills/update/CLAUDE.md +1 -38
- package/system-prompts/AGENTS.md +17 -0
- package/system-prompts/CLAUDE.md +1 -17
- package/system-prompts/software-engineer.xml +3 -3
- package/agents/caveman.md +0 -73
- package/agents/clasp-deployment-orchestrator.md +0 -608
- package/agents/code-advisor.md +0 -23
- package/agents/deep-research.md +0 -152
- package/agents/docs-agent.md +0 -85
- package/commands/commit.md +0 -28
- package/commands/docupdate.md +0 -322
- package/commands/hook-log-extract.md +0 -70
- package/commands/hook-log-init.md +0 -76
- package/commands/implement.md +0 -102
- package/commands/plan.md +0 -14
- package/commands/pr-comments.md +0 -47
- package/commands/review-plan.md +0 -5
- package/commands/right-size.md +0 -15
- package/commands/sum.md +0 -30
- package/skills/imagegen/SKILL.md +0 -21
- package/skills/imagegen/scripts/config/__init__.py +0 -1
- package/skills/imagegen/scripts/config/constants.py +0 -28
- package/skills/imagegen/scripts/imagegen.py +0 -45
- package/skills/imagegen/scripts/imagegen_core.py +0 -528
- package/skills/imagegen/scripts/test_imagegen.py +0 -204
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Initialize the Neon schema used by the hook-log extractor
|
|
3
|
-
allowed-tools: Bash
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Initialize the Neon Postgres schema that backs the hook-log diagnostic
|
|
7
|
-
extractor. Run this once per new machine, or after rotating the Neon
|
|
8
|
-
project, before the Stop hook begins inserting rows.
|
|
9
|
-
|
|
10
|
-
## Prerequisites
|
|
11
|
-
|
|
12
|
-
One-time setup on each machine:
|
|
13
|
-
|
|
14
|
-
1. **Install the Bitwarden Secret Manager CLI** so the `bws` command is on PATH.
|
|
15
|
-
See https://bitwarden.com/help/secrets-manager-cli/ for platform-specific instructions.
|
|
16
|
-
|
|
17
|
-
2. **Create a Bitwarden machine account** scoped to the Neon connection
|
|
18
|
-
secret, generate its access token, and export it to the current user
|
|
19
|
-
environment.
|
|
20
|
-
|
|
21
|
-
On Windows (PowerShell):
|
|
22
|
-
|
|
23
|
-
```powershell
|
|
24
|
-
setx BWS_ACCESS_TOKEN "<machine-account-access-token>"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Open a new terminal so the variable takes effect.
|
|
28
|
-
|
|
29
|
-
On macOS or Linux (bash/zsh — add to `~/.bashrc`, `~/.zshrc`, or the
|
|
30
|
-
equivalent profile so new shells inherit it):
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
export BWS_ACCESS_TOKEN="<machine-account-access-token>"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
3. **Store the Neon connection string** in the Bitwarden Secrets Manager
|
|
37
|
-
under the key `NEON_HOOK_LOGS_DATABASE_URL`. The value is the full
|
|
38
|
-
`postgres://user:password@host/database?sslmode=require` URL that
|
|
39
|
-
Neon provides on the project dashboard.
|
|
40
|
-
|
|
41
|
-
4. **Install the Python dependencies** so the extractor can reach Neon.
|
|
42
|
-
Production runtime:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
pip install -r packages/claude-dev-env/hooks/diagnostic/requirements-hook-logs.txt
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Development (adds `pytest` on top of the runtime deps):
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
pip install -r packages/claude-dev-env/hooks/diagnostic/requirements-hook-logs-dev.txt
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Run the init
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
bws run -- python packages/claude-dev-env/hooks/diagnostic/hook_log_init.py
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
The init script performs these steps in order:
|
|
61
|
-
|
|
62
|
-
1. Verifies `NEON_HOOK_LOGS_DATABASE_URL` is set. `BWS_ACCESS_TOKEN` is
|
|
63
|
-
consumed by the outer `bws` CLI before it spawns the Python child
|
|
64
|
-
process; `bws run` intentionally strips it from the child
|
|
65
|
-
environment to prevent subprocess credential leakage, so the Python
|
|
66
|
-
script never sees it.
|
|
67
|
-
2. Connects to Neon with a 5-second timeout.
|
|
68
|
-
3. Applies the DDL in `packages/claude-dev-env/hooks/diagnostic/schema.sql`
|
|
69
|
-
using `CREATE TABLE IF NOT EXISTS`, `CREATE INDEX IF NOT EXISTS`, and
|
|
70
|
-
`CREATE OR REPLACE VIEW` so the script stays idempotent.
|
|
71
|
-
4. Inserts a sentinel row with `outcome = 'init_probe'`, selects it back,
|
|
72
|
-
and deletes it to confirm read-write parity.
|
|
73
|
-
5. Prints a success report showing the Neon host, table name, and row count.
|
|
74
|
-
|
|
75
|
-
A missing environment variable exits with status 1 and lists the
|
|
76
|
-
missing name on stderr; any other failure surfaces the psycopg exception.
|
package/commands/implement.md
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Provide full implementation context to right-sized engineer in XML format
|
|
3
|
-
allowed-tools: Task, Read, Grep, Glob
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
**Implementation with Full Context - XML-Structured Guidance**
|
|
7
|
-
|
|
8
|
-
Launch a clean-coder agent — `model: sonnet`, worker-model routing per [`skills/orchestrator/SKILL.md`](../skills/orchestrator/SKILL.md#workflow-agent-routing); resolver-supplied sonnet-equivalent on third-party hosts — with COMPREHENSIVE implementation context provided in structured XML format.
|
|
9
|
-
|
|
10
|
-
## Process:
|
|
11
|
-
|
|
12
|
-
1. **Gather Complete Context** - Analyze the codebase to understand:
|
|
13
|
-
- Existing patterns and conventions
|
|
14
|
-
- Available dependencies and libraries
|
|
15
|
-
- Testing approaches and frameworks
|
|
16
|
-
- File organization and naming conventions
|
|
17
|
-
|
|
18
|
-
2. **Structure the Implementation Request in XML**:
|
|
19
|
-
```xml
|
|
20
|
-
<implementation-context>
|
|
21
|
-
<requirements>
|
|
22
|
-
<user-request>Exact user requirements</user-request>
|
|
23
|
-
<acceptance-criteria>What defines success</acceptance-criteria>
|
|
24
|
-
<constraints>Any limitations or must-haves</constraints>
|
|
25
|
-
</requirements>
|
|
26
|
-
|
|
27
|
-
<project-context>
|
|
28
|
-
<codebase-patterns>
|
|
29
|
-
<pattern>Existing patterns found in codebase</pattern>
|
|
30
|
-
<conventions>Naming and style conventions observed</conventions>
|
|
31
|
-
<architecture>Current architectural approach</architecture>
|
|
32
|
-
</codebase-patterns>
|
|
33
|
-
<dependencies>
|
|
34
|
-
<available>List of available libraries/frameworks</available>
|
|
35
|
-
<avoid>Libraries NOT to use</avoid>
|
|
36
|
-
</dependencies>
|
|
37
|
-
<testing-approach>
|
|
38
|
-
<framework>Testing framework in use</framework>
|
|
39
|
-
<patterns>Test file patterns and locations</patterns>
|
|
40
|
-
</testing-approach>
|
|
41
|
-
</project-context>
|
|
42
|
-
|
|
43
|
-
<implementation-plan>
|
|
44
|
-
<approach>High-level approach to implementation</approach>
|
|
45
|
-
<steps>
|
|
46
|
-
<step priority="1">First implementation step</step>
|
|
47
|
-
<step priority="2">Second implementation step</step>
|
|
48
|
-
<!-- Additional steps as needed -->
|
|
49
|
-
</steps>
|
|
50
|
-
<test-strategy>
|
|
51
|
-
<tdd-requirement>MANDATORY: Write failing tests first</tdd-requirement>
|
|
52
|
-
<coverage>Expected test coverage approach</coverage>
|
|
53
|
-
</test-strategy>
|
|
54
|
-
</implementation-plan>
|
|
55
|
-
|
|
56
|
-
<engineering-principles>
|
|
57
|
-
<must-follow>
|
|
58
|
-
<principle>TDD - No production code without failing test</principle>
|
|
59
|
-
<principle>Follow existing patterns exactly</principle>
|
|
60
|
-
<principle>Use available utilities - no reinventing</principle>
|
|
61
|
-
<principle>Small, focused functions</principle>
|
|
62
|
-
<principle>Proper error handling</principle>
|
|
63
|
-
</must-follow>
|
|
64
|
-
<avoid>
|
|
65
|
-
<anti-pattern>Over-engineering for current scale</anti-pattern>
|
|
66
|
-
<anti-pattern>Breaking existing conventions</anti-pattern>
|
|
67
|
-
<anti-pattern>Copy-paste programming</anti-pattern>
|
|
68
|
-
<anti-pattern>Magic numbers/strings</anti-pattern>
|
|
69
|
-
</avoid>
|
|
70
|
-
</engineering-principles>
|
|
71
|
-
|
|
72
|
-
<success-criteria>
|
|
73
|
-
<criterion>All tests pass</criterion>
|
|
74
|
-
<criterion>Follows existing patterns</criterion>
|
|
75
|
-
<criterion>No linting/type errors</criterion>
|
|
76
|
-
<criterion>Maintains backward compatibility</criterion>
|
|
77
|
-
</success-criteria>
|
|
78
|
-
</implementation-context>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
3. **Provide to Agent with Clear Instructions**:
|
|
82
|
-
- "ULTRATHINK through this implementation"
|
|
83
|
-
- "Follow TDD strictly - write tests FIRST"
|
|
84
|
-
- "Match existing patterns EXACTLY"
|
|
85
|
-
- "Use the XML context to understand all requirements and constraints"
|
|
86
|
-
|
|
87
|
-
4. **Agent Should**:
|
|
88
|
-
- Parse the XML context thoroughly
|
|
89
|
-
- Implement following TDD (Red-Green-Refactor)
|
|
90
|
-
- Match existing codebase patterns
|
|
91
|
-
- Use available utilities and libraries
|
|
92
|
-
- Apply right-sized engineering principles
|
|
93
|
-
- Validate against success criteria
|
|
94
|
-
|
|
95
|
-
**CRITICAL REQUIREMENTS**:
|
|
96
|
-
- Provide COMPLETE context - incomplete context leads to wrong implementations
|
|
97
|
-
- Ensure XML is well-formed and comprehensive
|
|
98
|
-
- Include concrete examples from existing code
|
|
99
|
-
- Specify exact file locations and patterns
|
|
100
|
-
- Make constraints and requirements crystal clear
|
|
101
|
-
|
|
102
|
-
This ensures the implementation agent has everything needed to deliver a solution that integrates seamlessly with the existing codebase while following best practices.
|
package/commands/plan.md
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
Plan a feature through the workflow-backed `anthropic-plan` skill.
|
|
2
|
-
|
|
3
|
-
Invoke `anthropic-plan` with the user request. The skill launches the Claude Code Workflow at:
|
|
4
|
-
|
|
5
|
-
`$HOME/.claude/skills/anthropic-plan/workflow/plan-packet.mjs`
|
|
6
|
-
|
|
7
|
-
The workflow creates a validated `docs/plans/<slug>/` packet, spawns the fresh `plan-packet-validator` agent, repairs packet findings, and stops before implementation.
|
|
8
|
-
|
|
9
|
-
Usage:
|
|
10
|
-
|
|
11
|
-
```text
|
|
12
|
-
/plan add user authentication
|
|
13
|
-
/plan refactor the payment system
|
|
14
|
-
```
|
package/commands/pr-comments.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Fetch and display all comments from a GitHub PR (fetches comments from the current repo)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
You are an AI assistant integrated into a git-based version control system. Your task is to fetch and display comments from a GitHub pull request.
|
|
6
|
-
|
|
7
|
-
**CRITICAL: Detect the repository from the current git remote (upstream preferred, then origin).**
|
|
8
|
-
|
|
9
|
-
Follow these steps:
|
|
10
|
-
|
|
11
|
-
1. Detect `{owner}/{repo}` from `gh repo view --json nameWithOwner -q .nameWithOwner`
|
|
12
|
-
2. Extract PR number from the argument (e.g., "PR44" → 44, "44" → 44)
|
|
13
|
-
3. Use `gh api repos/{owner}/{repo}/issues/{number}/comments` to get PR-level comments
|
|
14
|
-
4. Use `gh api repos/{owner}/{repo}/pulls/{number}/comments` to get inline review comments
|
|
15
|
-
5. Use `gh api repos/{owner}/{repo}/pulls/{number}/reviews` to get review summaries
|
|
16
|
-
6. Parse and format all comments in chronological order
|
|
17
|
-
7. Return ONLY the formatted comments, with no additional text
|
|
18
|
-
|
|
19
|
-
Format the comments as:
|
|
20
|
-
|
|
21
|
-
## Comments
|
|
22
|
-
|
|
23
|
-
### PR-level Comments
|
|
24
|
-
|
|
25
|
-
[For each issue comment:]
|
|
26
|
-
- @author (timestamp):
|
|
27
|
-
> quoted comment text
|
|
28
|
-
|
|
29
|
-
### Review: @reviewer [action] (timestamp)
|
|
30
|
-
|
|
31
|
-
[Review summary if present]
|
|
32
|
-
|
|
33
|
-
[For each inline code comment:]
|
|
34
|
-
- @author file.ts#line:
|
|
35
|
-
```diff
|
|
36
|
-
[diff_hunk from the API response]
|
|
37
|
-
```
|
|
38
|
-
> quoted comment text
|
|
39
|
-
|
|
40
|
-
If there are no comments, return "No comments found."
|
|
41
|
-
|
|
42
|
-
Remember:
|
|
43
|
-
1. Only show the actual comments, no explanatory text
|
|
44
|
-
2. Include PR-level comments, review summaries, and inline code review comments
|
|
45
|
-
3. Preserve chronological order
|
|
46
|
-
4. Show the file and line number context for inline code review comments
|
|
47
|
-
5. Detect {owner}/{repo} dynamically from the current git remote
|
package/commands/review-plan.md
DELETED
package/commands/right-size.md
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Prevent over/under-engineering
|
|
3
|
-
allowed-tools: Task
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Launch the clean-coder agent — `model: sonnet`, worker-model routing per [`skills/orchestrator/SKILL.md`](../skills/orchestrator/SKILL.md#workflow-agent-routing); resolver-supplied sonnet-equivalent on third-party hosts — to review code for appropriate engineering practices.
|
|
7
|
-
|
|
8
|
-
The agent will evaluate whether abstractions, patterns, and practices match the actual needs of the project, ensuring code is neither over-engineered nor under-engineered for its current scale and purpose.
|
|
9
|
-
|
|
10
|
-
The review will identify:
|
|
11
|
-
- **Over-engineering**: Abstract classes with single implementations, unnecessary interfaces, complex patterns where simple functions would suffice
|
|
12
|
-
- **Under-engineering**: Hardcoded values, magic numbers/strings, copy-pasted code, missing error handling
|
|
13
|
-
- **Good examples**: Appropriate constant extraction, well-scoped functions, clear error handling, simple maintainable solutions
|
|
14
|
-
|
|
15
|
-
The goal is to build it right, but build it simple - applying good engineering principles at the appropriate scale for the project.
|
package/commands/sum.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sum
|
|
3
|
-
description: Generate a formatted session summary for quick pickup in new sessions
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Provide a nicely formatted summary of where we are leaving off in this session.
|
|
7
|
-
|
|
8
|
-
Use this format with proper line breaks:
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
**Session Summary: [Project/Task Name]**
|
|
14
|
-
|
|
15
|
-
**Status:** [Current state - e.g., Complete, In Progress, Blocked]
|
|
16
|
-
|
|
17
|
-
**Commits:** (if any)
|
|
18
|
-
- `hash` - Description
|
|
19
|
-
|
|
20
|
-
**What's Done:**
|
|
21
|
-
- Item 1
|
|
22
|
-
- Item 2
|
|
23
|
-
|
|
24
|
-
**Next Step:**
|
|
25
|
-
[Single clear next action]
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Keep it concise but readable. Focus on actionable context, not history.
|
package/skills/imagegen/SKILL.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: imagegen
|
|
3
|
-
description: Generate prompt-driven images at exact requested resolutions through OpenAI API or Codex OAuth, with verified Pillow dimensions, truthful receipts, and safe atomic publication.
|
|
4
|
-
argument-hint: --backend openai-api|codex-oauth --prompt "..." --size 2880x2880 --output path.png
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Exact-resolution image generation
|
|
8
|
-
|
|
9
|
-
Use `scripts/imagegen.py` for reusable image generation.
|
|
10
|
-
|
|
11
|
-
Prerequisites: Python 3.11 or newer and Pillow. The direct backend requires `OPENAI_API_KEY`; the OAuth backend requires an authenticated `codex` installation.
|
|
12
|
-
|
|
13
|
-
```text
|
|
14
|
-
python scripts/imagegen.py --backend openai-api --prompt "..." --size 2880x2880 --output generated.png
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
`openai-api` reads `OPENAI_API_KEY` from the environment and requests `gpt-image-2`. `codex-oauth` invokes the authenticated `codex` executable in an isolated temporary directory and measures its single PNG artifact.
|
|
18
|
-
|
|
19
|
-
Native provider dimensions publish unchanged source bytes. A mismatch fails with the default `--resize-policy forbid`; `--resize-policy allow` applies Pillow resizing and records `resized` in the JSON sidecar receipt.
|
|
20
|
-
|
|
21
|
-
The receipt sits beside the PNG with a `.json` suffix. It contains hashes, observed dimensions, backend, model or tool, transformation classification, prompt hash, and credential source name. Existing output or receipt files require `--overwrite`.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""Configuration package for the imagegen skill."""
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"""Named imagegen limits and provider settings."""
|
|
2
|
-
|
|
3
|
-
OPENAI_API_URL = "https://api.openai.com/v1/images/generations"
|
|
4
|
-
OPENAI_MODEL = "gpt-image-2"
|
|
5
|
-
OPENAI_OUTPUT_FORMAT = "png"
|
|
6
|
-
OPENAI_API_KEY_NAME = "OPENAI_API_KEY"
|
|
7
|
-
CODEX_TOOL_NAME = "codex-imagegen"
|
|
8
|
-
ALL_SUPPORTED_BACKENDS = ("openai-api", "codex-oauth")
|
|
9
|
-
ALL_SUPPORTED_RESIZE_POLICIES = ("forbid", "allow")
|
|
10
|
-
MAXIMUM_IMAGE_EDGE = 3840
|
|
11
|
-
MINIMUM_PIXEL_COUNT = 655_360
|
|
12
|
-
MAXIMUM_PIXEL_COUNT = 8_294_400
|
|
13
|
-
SIZE_MULTIPLE = 16
|
|
14
|
-
JSON_INDENT_LEVEL = 2
|
|
15
|
-
MAXIMUM_PROVIDER_BYTES = 64 * 1024 * 1024
|
|
16
|
-
CODEX_TIMEOUT_SECONDS = 300
|
|
17
|
-
MAXIMUM_CODEX_OUTPUT_BYTES = 1 * 1024 * 1024
|
|
18
|
-
OPENAI_TIMEOUT_SECONDS = 120
|
|
19
|
-
SIZE_COMPONENT_COUNT = 2
|
|
20
|
-
SIZE_SEPARATOR = "x"
|
|
21
|
-
PNG_SUFFIX = ".png"
|
|
22
|
-
PNG_FORMAT = "PNG"
|
|
23
|
-
RECEIPT_SUFFIX = ".json"
|
|
24
|
-
TEMPORARY_DIRECTORY_PREFIX = "imagegen-"
|
|
25
|
-
TEMPORARY_FILE_TOKEN_BYTES = 8
|
|
26
|
-
DEFAULT_PROVIDER_EDGE = 2048
|
|
27
|
-
MINIMUM_DIMENSION = 1
|
|
28
|
-
MAXIMUM_CODEX_ARTIFACT_COUNT = 1
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"""Command-line entry point for exact-resolution image generation."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import argparse
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
from config.constants import ALL_SUPPORTED_BACKENDS, ALL_SUPPORTED_RESIZE_POLICIES
|
|
9
|
-
from imagegen_core import ImagegenError, generate_image, parse_size
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def build_parser() -> argparse.ArgumentParser:
|
|
13
|
-
"""Build the imagegen command-line parser.
|
|
14
|
-
|
|
15
|
-
Returns:
|
|
16
|
-
Parser for the imagegen command-line contract.
|
|
17
|
-
"""
|
|
18
|
-
parser = argparse.ArgumentParser(description="Generate an exact-resolution image")
|
|
19
|
-
parser.add_argument("--backend", choices=ALL_SUPPORTED_BACKENDS, required=True)
|
|
20
|
-
parser.add_argument("--prompt", required=True)
|
|
21
|
-
parser.add_argument("--size", required=True)
|
|
22
|
-
parser.add_argument("--output", dest="destination_path", type=Path, required=True)
|
|
23
|
-
parser.add_argument("--resize-policy", choices=ALL_SUPPORTED_RESIZE_POLICIES, default=ALL_SUPPORTED_RESIZE_POLICIES[0])
|
|
24
|
-
parser.add_argument("--overwrite", action="store_true")
|
|
25
|
-
return parser
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def main() -> int:
|
|
29
|
-
"""Run the CLI and return a process status.
|
|
30
|
-
|
|
31
|
-
Returns:
|
|
32
|
-
Zero for a published artifact and one for a generation failure.
|
|
33
|
-
"""
|
|
34
|
-
arguments = build_parser().parse_args()
|
|
35
|
-
try:
|
|
36
|
-
all_receipt = generate_image(arguments.prompt, arguments.backend, parse_size(arguments.size), arguments.destination_path, arguments.resize_policy, arguments.overwrite)
|
|
37
|
-
except ImagegenError as error:
|
|
38
|
-
print(f"ERROR: {error}")
|
|
39
|
-
return 1
|
|
40
|
-
print(f"Generated {arguments.destination_path} ({all_receipt['transformation']})")
|
|
41
|
-
return 0
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if __name__ == "__main__":
|
|
45
|
-
raise SystemExit(main())
|