anvil-dev-framework 0.1.6
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/README.md +719 -0
- package/VERSION +1 -0
- package/docs/ANVIL-REPO-IMPLEMENTATION-PLAN.md +441 -0
- package/docs/FIRST-SKILL-TUTORIAL.md +408 -0
- package/docs/INSTALLATION-RETRO-NOTES.md +458 -0
- package/docs/INSTALLATION.md +984 -0
- package/docs/anvil-hud.md +469 -0
- package/docs/anvil-init.md +255 -0
- package/docs/anvil-state.md +210 -0
- package/docs/boris-cherny-ralph-wiggum-insights.md +608 -0
- package/docs/command-reference.md +2022 -0
- package/docs/hooks-tts.md +368 -0
- package/docs/implementation-guide.md +810 -0
- package/docs/linear-github-integration.md +247 -0
- package/docs/local-issues.md +677 -0
- package/docs/patterns/README.md +419 -0
- package/docs/planning-responsibilities.md +139 -0
- package/docs/session-workflow.md +573 -0
- package/docs/simplification-plan-template.md +297 -0
- package/docs/simplification-principles.md +129 -0
- package/docs/specifications/CCS-RALPH-INTEGRATION-DESIGN.md +633 -0
- package/docs/specifications/CCS-RESEARCH-REPORT.md +169 -0
- package/docs/specifications/PLAN-ANV-verification-ralph-wiggum.md +403 -0
- package/docs/specifications/PLAN-parallel-tracks-anvil-memory-ccs.md +494 -0
- package/docs/specifications/SPEC-ANV-VRW/component-01-verify.md +208 -0
- package/docs/specifications/SPEC-ANV-VRW/component-02-stop-gate.md +226 -0
- package/docs/specifications/SPEC-ANV-VRW/component-03-posttooluse.md +209 -0
- package/docs/specifications/SPEC-ANV-VRW/component-04-ralph-wiggum.md +604 -0
- package/docs/specifications/SPEC-ANV-VRW/component-05-atomic-actions.md +311 -0
- package/docs/specifications/SPEC-ANV-VRW/component-06-verify-subagent.md +264 -0
- package/docs/specifications/SPEC-ANV-VRW/component-07-claude-md.md +363 -0
- package/docs/specifications/SPEC-ANV-VRW/index.md +182 -0
- package/docs/specifications/SPEC-ANV-anvil-memory.md +573 -0
- package/docs/specifications/SPEC-ANV-context-checkpoints.md +781 -0
- package/docs/specifications/SPEC-ANV-verification-ralph-wiggum.md +789 -0
- package/docs/sync.md +122 -0
- package/global/CLAUDE.md +140 -0
- package/global/agents/verify-app.md +164 -0
- package/global/commands/anvil-settings.md +527 -0
- package/global/commands/anvil-sync.md +121 -0
- package/global/commands/change.md +197 -0
- package/global/commands/clarify.md +252 -0
- package/global/commands/cleanup.md +292 -0
- package/global/commands/commit-push-pr.md +207 -0
- package/global/commands/decay-review.md +127 -0
- package/global/commands/discover.md +158 -0
- package/global/commands/doc-coverage.md +122 -0
- package/global/commands/evidence.md +307 -0
- package/global/commands/explore.md +121 -0
- package/global/commands/force-exit.md +135 -0
- package/global/commands/handoff.md +191 -0
- package/global/commands/healthcheck.md +302 -0
- package/global/commands/hud.md +84 -0
- package/global/commands/insights.md +319 -0
- package/global/commands/linear-setup.md +184 -0
- package/global/commands/lint-fix.md +198 -0
- package/global/commands/orient.md +510 -0
- package/global/commands/plan.md +228 -0
- package/global/commands/ralph.md +346 -0
- package/global/commands/ready.md +182 -0
- package/global/commands/release.md +305 -0
- package/global/commands/retro.md +96 -0
- package/global/commands/shard.md +166 -0
- package/global/commands/spec.md +227 -0
- package/global/commands/sprint.md +184 -0
- package/global/commands/tasks.md +228 -0
- package/global/commands/test-and-commit.md +151 -0
- package/global/commands/validate.md +132 -0
- package/global/commands/verify.md +251 -0
- package/global/commands/weekly-review.md +156 -0
- package/global/hooks/__pycache__/ralph_context_monitor.cpython-314.pyc +0 -0
- package/global/hooks/__pycache__/statusline_agent_sync.cpython-314.pyc +0 -0
- package/global/hooks/anvil_memory_observe.ts +322 -0
- package/global/hooks/anvil_memory_session.ts +166 -0
- package/global/hooks/anvil_memory_stop.ts +187 -0
- package/global/hooks/parse_transcript.py +116 -0
- package/global/hooks/post_merge_cleanup.sh +132 -0
- package/global/hooks/post_tool_format.sh +215 -0
- package/global/hooks/ralph_context_monitor.py +240 -0
- package/global/hooks/ralph_stop.sh +502 -0
- package/global/hooks/statusline.sh +1110 -0
- package/global/hooks/statusline_agent_sync.py +224 -0
- package/global/hooks/stop_gate.sh +250 -0
- package/global/lib/.claude/anvil-state.json +21 -0
- package/global/lib/__pycache__/agent_registry.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/claim_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/coderabbit_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/config_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/coordination_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/doc_coverage_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/gate_logger.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/github_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/hygiene_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/issue_models.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/issue_provider.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/linear_data_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/linear_provider.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/local_provider.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/quality_service.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/ralph_state.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/state_manager.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/transcript_parser.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/verification_runner.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/verify_iteration.cpython-314.pyc +0 -0
- package/global/lib/__pycache__/verify_subagent.cpython-314.pyc +0 -0
- package/global/lib/agent_registry.py +995 -0
- package/global/lib/anvil-state.sh +435 -0
- package/global/lib/claim_service.py +515 -0
- package/global/lib/coderabbit_service.py +314 -0
- package/global/lib/config_service.py +423 -0
- package/global/lib/coordination_service.py +331 -0
- package/global/lib/doc_coverage_service.py +1305 -0
- package/global/lib/gate_logger.py +316 -0
- package/global/lib/github_service.py +310 -0
- package/global/lib/handoff_generator.py +775 -0
- package/global/lib/hygiene_service.py +712 -0
- package/global/lib/issue_models.py +257 -0
- package/global/lib/issue_provider.py +339 -0
- package/global/lib/linear_data_service.py +210 -0
- package/global/lib/linear_provider.py +987 -0
- package/global/lib/linear_provider.py.backup +671 -0
- package/global/lib/local_provider.py +486 -0
- package/global/lib/orient_fast.py +457 -0
- package/global/lib/quality_service.py +470 -0
- package/global/lib/ralph_prompt_generator.py +563 -0
- package/global/lib/ralph_state.py +1202 -0
- package/global/lib/state_manager.py +417 -0
- package/global/lib/transcript_parser.py +597 -0
- package/global/lib/verification_runner.py +557 -0
- package/global/lib/verify_iteration.py +490 -0
- package/global/lib/verify_subagent.py +250 -0
- package/global/skills/README.md +155 -0
- package/global/skills/quality-gates/SKILL.md +252 -0
- package/global/skills/skill-template/SKILL.md +109 -0
- package/global/skills/testing-strategies/SKILL.md +337 -0
- package/global/templates/CHANGE-template.md +105 -0
- package/global/templates/HANDOFF-template.md +63 -0
- package/global/templates/PLAN-template.md +111 -0
- package/global/templates/SPEC-template.md +93 -0
- package/global/templates/ralph/PROMPT.md.template +89 -0
- package/global/templates/ralph/fix_plan.md.template +31 -0
- package/global/templates/ralph/progress.txt.template +23 -0
- package/global/tests/__pycache__/test_doc_coverage.cpython-314.pyc +0 -0
- package/global/tests/test_doc_coverage.py +520 -0
- package/global/tests/test_issue_models.py +299 -0
- package/global/tests/test_local_provider.py +323 -0
- package/global/tools/README.md +178 -0
- package/global/tools/__pycache__/anvil-hud.cpython-314.pyc +0 -0
- package/global/tools/anvil-hud.py +3622 -0
- package/global/tools/anvil-hud.py.bak +3318 -0
- package/global/tools/anvil-issue.py +432 -0
- package/global/tools/anvil-memory/CLAUDE.md +49 -0
- package/global/tools/anvil-memory/README.md +42 -0
- package/global/tools/anvil-memory/bun.lock +25 -0
- package/global/tools/anvil-memory/bunfig.toml +9 -0
- package/global/tools/anvil-memory/package.json +23 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/context-monitor.test.ts +535 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/edge-cases.test.ts +645 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/fixtures.ts +363 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/index.ts +8 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/integration.test.ts +417 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/prompt-generator.test.ts +571 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/ralph-stop.test.ts +440 -0
- package/global/tools/anvil-memory/src/__tests__/ccs/test-utils.ts +252 -0
- package/global/tools/anvil-memory/src/__tests__/commands.test.ts +657 -0
- package/global/tools/anvil-memory/src/__tests__/db.test.ts +641 -0
- package/global/tools/anvil-memory/src/__tests__/hooks.test.ts +272 -0
- package/global/tools/anvil-memory/src/__tests__/performance.test.ts +427 -0
- package/global/tools/anvil-memory/src/__tests__/test-utils.ts +113 -0
- package/global/tools/anvil-memory/src/commands/checkpoint.ts +197 -0
- package/global/tools/anvil-memory/src/commands/get.ts +115 -0
- package/global/tools/anvil-memory/src/commands/init.ts +94 -0
- package/global/tools/anvil-memory/src/commands/observe.ts +163 -0
- package/global/tools/anvil-memory/src/commands/search.ts +112 -0
- package/global/tools/anvil-memory/src/db.ts +638 -0
- package/global/tools/anvil-memory/src/index.ts +205 -0
- package/global/tools/anvil-memory/src/types.ts +122 -0
- package/global/tools/anvil-memory/tsconfig.json +29 -0
- package/global/tools/ralph-loop.sh +359 -0
- package/package.json +45 -0
- package/scripts/anvil +822 -0
- package/scripts/extract_patterns.py +222 -0
- package/scripts/init-project.sh +541 -0
- package/scripts/install.sh +229 -0
- package/scripts/postinstall.js +41 -0
- package/scripts/rollback.sh +188 -0
- package/scripts/sync.sh +623 -0
- package/scripts/test-statusline.sh +248 -0
- package/scripts/update_claude_md.py +224 -0
- package/scripts/verify.sh +255 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_id: SPEC-[NUMBER]
|
|
3
|
+
title: [Feature Name]
|
|
4
|
+
status: draft
|
|
5
|
+
created: YYYY-MM-DD
|
|
6
|
+
updated: YYYY-MM-DD
|
|
7
|
+
linear_issue: [Issue Key]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# [Feature Name] Specification
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
[2-3 sentence description of what this feature does and why it matters]
|
|
14
|
+
|
|
15
|
+
## Problem Statement
|
|
16
|
+
[What problem does this solve? What's the current pain point?]
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
|
|
20
|
+
### Functional Requirements
|
|
21
|
+
1. **[REQ-001]**: [Requirement description]
|
|
22
|
+
2. **[REQ-002]**: [Requirement description]
|
|
23
|
+
3. **[REQ-003]**: [Requirement description]
|
|
24
|
+
|
|
25
|
+
### Non-Functional Requirements
|
|
26
|
+
- **Performance**: [Any performance requirements]
|
|
27
|
+
- **Security**: [Any security considerations]
|
|
28
|
+
- **Accessibility**: [Any a11y requirements]
|
|
29
|
+
|
|
30
|
+
## User Stories
|
|
31
|
+
|
|
32
|
+
### [Story 1 Title]
|
|
33
|
+
**As a** [user type]
|
|
34
|
+
**I want** [goal]
|
|
35
|
+
**So that** [benefit]
|
|
36
|
+
|
|
37
|
+
## Acceptance Criteria
|
|
38
|
+
|
|
39
|
+
### Scenario: [Happy Path]
|
|
40
|
+
```gherkin
|
|
41
|
+
GIVEN [precondition]
|
|
42
|
+
AND [additional precondition]
|
|
43
|
+
WHEN [action]
|
|
44
|
+
THEN [expected result]
|
|
45
|
+
AND [additional result]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Scenario: [Edge Case]
|
|
49
|
+
```gherkin
|
|
50
|
+
GIVEN [precondition]
|
|
51
|
+
WHEN [action]
|
|
52
|
+
THEN [expected behavior]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Scenario: [Error Case]
|
|
56
|
+
```gherkin
|
|
57
|
+
GIVEN [precondition]
|
|
58
|
+
WHEN [invalid action]
|
|
59
|
+
THEN [error handling behavior]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Technical Considerations
|
|
63
|
+
|
|
64
|
+
### Affected Components
|
|
65
|
+
| Component | Change Type | Notes |
|
|
66
|
+
|-----------|-------------|-------|
|
|
67
|
+
| [Component] | New/Modified | [Details] |
|
|
68
|
+
|
|
69
|
+
### Data Model Changes
|
|
70
|
+
[Any database or state changes needed]
|
|
71
|
+
|
|
72
|
+
### API Changes
|
|
73
|
+
[Any API endpoints added or modified]
|
|
74
|
+
|
|
75
|
+
### Dependencies
|
|
76
|
+
- [Dependency on other features/systems]
|
|
77
|
+
|
|
78
|
+
## Out of Scope
|
|
79
|
+
- [Explicitly excluded item]
|
|
80
|
+
- [Future consideration, not this iteration]
|
|
81
|
+
|
|
82
|
+
## Open Questions
|
|
83
|
+
- [ ] [Question needing resolution]
|
|
84
|
+
- [ ] [Decision needed]
|
|
85
|
+
|
|
86
|
+
## Risks and Mitigations
|
|
87
|
+
| Risk | Impact | Mitigation |
|
|
88
|
+
|------|--------|------------|
|
|
89
|
+
| [Risk] | High/Med/Low | [Mitigation strategy] |
|
|
90
|
+
|
|
91
|
+
## References
|
|
92
|
+
- [Link to related documentation]
|
|
93
|
+
- [Link to design mocks]
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Task: {{task_name}}
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
{{objective}}
|
|
5
|
+
|
|
6
|
+
## Current State
|
|
7
|
+
- **Iteration**: {{iteration_count}}
|
|
8
|
+
- **Last action**: {{last_action}}
|
|
9
|
+
- **Remaining items**: {{remaining_count}} of {{total_items}}
|
|
10
|
+
- **Started**: {{started_at}}
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### Step 1: Review Progress
|
|
17
|
+
1. **Read `progress.txt`** first - learn from what previous iterations attempted
|
|
18
|
+
2. Read `fix_plan.md` for the current TODO list
|
|
19
|
+
|
|
20
|
+
### Step 2: Execute ONE Item
|
|
21
|
+
3. Find the **first unchecked item** in fix_plan.md
|
|
22
|
+
4. Complete **ONLY that one item** - do not attempt multiple items
|
|
23
|
+
5. Run tests after completion
|
|
24
|
+
|
|
25
|
+
### Step 3: Update State
|
|
26
|
+
6. If tests pass, mark the item complete in fix_plan.md: `- [x]`
|
|
27
|
+
7. **Update `progress.txt`** with what you did this iteration
|
|
28
|
+
|
|
29
|
+
### Step 4: Check Completion
|
|
30
|
+
8. If ALL items are complete and tests pass, output:
|
|
31
|
+
```
|
|
32
|
+
<promise>{{completion_promise}}</promise>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Progress Tracking (REQUIRED)
|
|
38
|
+
|
|
39
|
+
After each iteration, **append** to `progress.txt`:
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
## Iteration {{iteration_count}} - {{timestamp}}
|
|
43
|
+
|
|
44
|
+
### Completed
|
|
45
|
+
- [What you finished this iteration]
|
|
46
|
+
|
|
47
|
+
### Attempted (if any failed)
|
|
48
|
+
- [What you tried but couldn't complete]
|
|
49
|
+
|
|
50
|
+
### Next
|
|
51
|
+
- [What the next iteration should focus on]
|
|
52
|
+
|
|
53
|
+
### Blockers
|
|
54
|
+
- [Anything blocking progress, or "None"]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Constraints
|
|
60
|
+
|
|
61
|
+
| Rule | Reason |
|
|
62
|
+
|------|--------|
|
|
63
|
+
| **ONE item per iteration** | Prevents context overflow |
|
|
64
|
+
| **Always update progress.txt** | Prevents repeated mistakes |
|
|
65
|
+
| **Run tests before marking complete** | Ensures quality |
|
|
66
|
+
| **Commit on successful item** | Preserves progress |
|
|
67
|
+
| **Use subagents for research** | Keeps main context clean |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Completion Signal
|
|
72
|
+
|
|
73
|
+
When ALL items are done and tests pass:
|
|
74
|
+
```
|
|
75
|
+
<promise>{{completion_promise}}</promise>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Fatal Error Signal
|
|
79
|
+
|
|
80
|
+
If stuck or unrecoverable after multiple attempts:
|
|
81
|
+
```
|
|
82
|
+
<fatal>Description of the blocking issue</fatal>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Context
|
|
88
|
+
|
|
89
|
+
{{additional_context}}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Fix Plan: {{task_name}}
|
|
2
|
+
|
|
3
|
+
> Generated: {{timestamp}}
|
|
4
|
+
> Task: {{objective}}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## TODO Items
|
|
9
|
+
|
|
10
|
+
Complete these items **one at a time**, in order:
|
|
11
|
+
|
|
12
|
+
{{todo_items}}
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Completion Criteria
|
|
17
|
+
|
|
18
|
+
All items must be checked AND:
|
|
19
|
+
- [ ] All tests passing
|
|
20
|
+
- [ ] All lint checks passing
|
|
21
|
+
- [ ] Code reviewed for quality
|
|
22
|
+
|
|
23
|
+
When complete, output: `<promise>{{completion_promise}}</promise>`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Notes
|
|
28
|
+
|
|
29
|
+
- Mark items complete with `- [x]` when done
|
|
30
|
+
- Do NOT skip items - complete in order
|
|
31
|
+
- If stuck on an item for 3+ iterations, output `<fatal>reason</fatal>`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Ralph Wiggum Progress Log
|
|
2
|
+
|
|
3
|
+
> Task: {{task_name}}
|
|
4
|
+
> Started: {{started_at}}
|
|
5
|
+
> Objective: {{objective}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Iteration 0 - Initialization
|
|
10
|
+
|
|
11
|
+
### Completed
|
|
12
|
+
- Created fix_plan.md with {{total_items}} items
|
|
13
|
+
- Initialized progress tracking
|
|
14
|
+
|
|
15
|
+
### Next
|
|
16
|
+
- Begin with first TODO item
|
|
17
|
+
|
|
18
|
+
### Blockers
|
|
19
|
+
- None
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
<!-- Each iteration should append a new section below -->
|
|
Binary file
|