Skip to content

Commit 77018c5

Browse files
committed
chore: add roadmap skill and remove premature coverage CI job
- Add /roadmap skill: orchestrates issue selection and implementation on main branch following the project's phase/step hierarchy - Remove coverage CI job (no tests yet, would fail at 0%) - Coverage gate deferred to Phase 1a Step 7 (#10)
1 parent 7a149a0 commit 77018c5

2 files changed

Lines changed: 107 additions & 20 deletions

File tree

.claude/skills/roadmap.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
name: roadmap
3+
description: Assess the project roadmap, select the next issue to implement, and drive implementation on main branch
4+
user_invocable: true
5+
---
6+
7+
# Roadmap Workflow
8+
9+
You are orchestrating the implementation of the internet-exploder project. All work happens on the main branch. Follow this process exactly.
10+
11+
## Step 1: Read all open issues
12+
13+
Fetch every open issue with its parent/children structure:
14+
15+
```bash
16+
gh issue list --repo bombfork/internet-exploder --state open --limit 200 --json number,title,labels,state
17+
```
18+
19+
```bash
20+
gh api graphql -f query='query {
21+
repository(owner: "bombfork", name: "internet-exploder") {
22+
issues(first: 100, states: [OPEN]) {
23+
nodes {
24+
number
25+
title
26+
parentIssue { number title }
27+
subIssues(first: 50) {
28+
nodes { number title state }
29+
}
30+
}
31+
}
32+
}
33+
}'
34+
```
35+
36+
## Step 2: Read the last closed issue
37+
38+
Check what was implemented most recently:
39+
40+
```bash
41+
gh issue list --repo bombfork/internet-exploder --state closed --limit 5 --json number,title,closedAt --jq 'sort_by(.closedAt) | reverse | .[0:5]'
42+
```
43+
44+
If there is a last closed issue, read it to understand what was just completed and what state the codebase is in.
45+
46+
## Step 3: Deduce the roadmap path
47+
48+
From the issue tree, reconstruct the implementation order:
49+
50+
1. Identify the **phase hierarchy**: Phase issues (1, 2, 3, 4) contain sub-phase issues (1a, 1b), which contain step issues.
51+
2. A step issue is **ready** if:
52+
- All its open children (if any) are completed
53+
- Its prerequisite sibling issues (per the parent issue's ordering) are completed
54+
3. Walk the tree: find the lowest-phase, lowest-step issue that is ready and open.
55+
4. Present the deduced roadmap path to the user: what's done, what's next, what's blocked.
56+
57+
## Step 4: Select the best next candidate
58+
59+
Pick the best next issue to implement based on:
60+
- Implementation order defined in parent issues
61+
- Dependency chain (prerequisites must be closed)
62+
- Parallelizable issues: if multiple issues have no dependency between them, pick the one that unblocks the most downstream work
63+
64+
Present the candidate to the user with a brief rationale.
65+
66+
## Step 5: Assess scope
67+
68+
Read the candidate issue fully:
69+
70+
```bash
71+
gh issue view <NUMBER> --repo bombfork/internet-exploder
72+
```
73+
74+
Assess whether this issue can be implemented in less than a day by a single engineer. Consider:
75+
- Number of files to create/modify
76+
- Complexity of the implementation
77+
- Number of tests to write
78+
- Whether it touches multiple crates with complex interactions
79+
80+
### If too large
81+
82+
Tell the user the issue is too large for a single implementation pass. Then:
83+
84+
1. Break it into smaller child issues, each implementable in less than a day
85+
2. Create them and link as sub-issues:
86+
```bash
87+
gh issue create --repo bombfork/internet-exploder --title "..." --body "Parent: #<NUMBER>\n\n..."
88+
# Then link via GraphQL addSubIssue mutation
89+
```
90+
3. Select the best first child issue as the new candidate
91+
4. Present the breakdown to the user
92+
93+
### If small enough
94+
95+
Tell the user which issue you're about to implement and why. Then invoke the take-issue skill:
96+
97+
```
98+
/take-issue <NUMBER>
99+
```
100+
101+
## Goal
102+
103+
Keep the main branch clean:
104+
- Every commit compiles and passes `mise run check`
105+
- Features are added one at a time in logical order
106+
- The issue tree reflects actual project progress
107+
- No half-implemented features left uncommitted

.github/workflows/ci.yml

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,3 @@ jobs:
2525
target
2626
key: v0-linux-${{ runner.arch }}-${{ steps.cache-key.outputs.cargo-lock-hash }}
2727
- run: mise run check
28-
29-
coverage:
30-
needs: check
31-
runs-on: ubuntu-latest
32-
steps:
33-
- uses: actions/checkout@v4
34-
- name: Prepare cache key
35-
id: cache-key
36-
run: |
37-
HASH=$(sha256sum Cargo.lock | cut -d' ' -f1)
38-
echo "cargo-lock-hash=$HASH" >> "$GITHUB_OUTPUT"
39-
- uses: jdx/mise-action@v2
40-
- uses: actions/cache@v4
41-
with:
42-
path: |
43-
~/.cargo
44-
target
45-
key: v0-linux-${{ runner.arch }}-${{ steps.cache-key.outputs.cargo-lock-hash }}
46-
- run: cargo install cargo-llvm-cov
47-
- run: mise run coverage:check

0 commit comments

Comments
 (0)