Skip to content

Commit 13e6dca

Browse files
Merge pull request #484 from forecast-bio/release/v0.5.2
Release v0.5.2
2 parents 073b1c9 + c104a3d commit 13e6dca

File tree

150 files changed

+31815
-23920
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+31815
-23920
lines changed

.crosslink/.gitignore

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,10 @@
22
agent.json
33
.hub-cache/
44
.knowledge-cache/
5-
.cache/
5+
.external-cache/
66
keys/
77
integrations/
88

9-
# Machine-local state
10-
issues.db
11-
issues.db-wal
12-
issues.db-shm
13-
session.json
14-
daemon.pid
15-
daemon.log
16-
last_test_run
17-
189
# Machine-local overrides
1910
hook-config.local.json
2011
rules.local/

.crosslink/rules/global.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,28 +46,28 @@ Add labels to control CHANGELOG.md section:
4646
crosslink quick "Fix login validation error on empty email" -p medium -l bug
4747

4848
# Or use create with flags
49-
crosslink create "Fix login validation error on empty email" -p medium --label bug --work
49+
crosslink issue create "Fix login validation error on empty email" -p medium --label bug --work
5050

5151
# Multi-part feature → Epic with subissues
52-
crosslink create "Add user authentication system" -p high --label feature
53-
crosslink subissue 1 "Add user registration endpoint"
54-
crosslink subissue 1 "Add login endpoint with JWT tokens"
55-
crosslink subissue 1 "Add session middleware for protected routes"
52+
crosslink issue create "Add user authentication system" -p high --label feature
53+
crosslink issue subissue 1 "Add user registration endpoint"
54+
crosslink issue subissue 1 "Add login endpoint with JWT tokens"
55+
crosslink issue subissue 1 "Add session middleware for protected routes"
5656

5757
# Mark what you're working on
5858
crosslink session work 1
5959

6060
# Add context as you discover things
61-
crosslink comment 1 "Found existing auth helper in utils/auth.ts" --kind observation
61+
crosslink issue comment 1 "Found existing auth helper in utils/auth.ts" --kind observation
6262

6363
# Close when done — auto-updates CHANGELOG.md
64-
crosslink close 1
64+
crosslink issue close 1
6565

6666
# Skip changelog for internal/refactor work
67-
crosslink close 1 --no-changelog
67+
crosslink issue close 1 --no-changelog
6868

6969
# Batch close
70-
crosslink close-all --no-changelog
70+
crosslink issue close-all --no-changelog
7171

7272
# Quiet mode for scripting
7373
crosslink -q create "Fix bug" -p high # Outputs just the ID number
@@ -136,12 +136,12 @@ This software supports regulated biotech operations. Every issue MUST have a doc
136136

137137
```bash
138138
# These are NOT optional. You MUST use --kind on EVERY comment.
139-
crosslink comment <id> "Approach: using existing auth middleware" --kind plan
140-
crosslink comment <id> "Chose JWT over sessions — stateless, simpler for API consumers" --kind decision
141-
crosslink comment <id> "Found legacy endpoint at /api/v1/auth that conflicts" --kind observation
142-
crosslink comment <id> "Blocked: CI pipeline timeout on integration tests" --kind blocker
143-
crosslink comment <id> "Resolved: increased CI timeout to 10m, tests pass" --kind resolution
144-
crosslink comment <id> "Delivered: JWT auth with refresh tokens, all 47 tests passing" --kind result
139+
crosslink issue comment <id> "Approach: using existing auth middleware" --kind plan
140+
crosslink issue comment <id> "Chose JWT over sessions — stateless, simpler for API consumers" --kind decision
141+
crosslink issue comment <id> "Found legacy endpoint at /api/v1/auth that conflicts" --kind observation
142+
crosslink issue comment <id> "Blocked: CI pipeline timeout on integration tests" --kind blocker
143+
crosslink issue comment <id> "Resolved: increased CI timeout to 10m, tests pass" --kind resolution
144+
crosslink issue comment <id> "Delivered: JWT auth with refresh tokens, all 47 tests passing" --kind result
145145
```
146146

147147
**If you close an issue that has zero typed comments, you have violated this rule.**

.crosslink/rules/tracking-normal.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Create issues before starting work to keep things organized and enable context h
77
- Issue titles should be changelog-ready: start with a verb ("Add", "Fix", "Update"), describe the user-visible change.
88
- Add labels for changelog categories: `bug`/`fix` → Fixed, `feature`/`enhancement` → Added, `breaking` → Changed, `security` → Security.
99
- For multi-part features: create parent issue + subissues. Work one at a time.
10-
- Add context as you discover things: `crosslink comment <id> "..."`
10+
- Add context as you discover things: `crosslink issue comment <id> "..."`
1111

1212
### Labels for Changelog Categories
1313
- `bug`, `fix`**Fixed**
@@ -24,21 +24,21 @@ Create issues before starting work to keep things organized and enable context h
2424
crosslink quick "Fix auth timeout" -p high -l bug
2525

2626
# Or use create with flags
27-
crosslink create "Add dark mode" -p medium --label feature --work
27+
crosslink issue create "Add dark mode" -p medium --label feature --work
2828

2929
# Multi-part feature
30-
crosslink create "Add user auth" -p high --label feature
31-
crosslink subissue 1 "Add registration endpoint"
32-
crosslink subissue 1 "Add login endpoint"
30+
crosslink issue create "Add user auth" -p high --label feature
31+
crosslink issue subissue 1 "Add registration endpoint"
32+
crosslink issue subissue 1 "Add login endpoint"
3333

3434
# Track progress
3535
crosslink session work <id>
36-
crosslink comment <id> "Found existing helper in utils/" --kind observation
36+
crosslink issue comment <id> "Found existing helper in utils/" --kind observation
3737

3838
# Close (auto-updates CHANGELOG.md)
39-
crosslink close <id>
40-
crosslink close <id> --no-changelog # Skip changelog for internal work
41-
crosslink close-all --no-changelog # Batch close
39+
crosslink issue close <id>
40+
crosslink issue close <id> --no-changelog # Skip changelog for internal work
41+
crosslink issue close-all --no-changelog # Batch close
4242

4343
# Quiet mode for scripting
4444
crosslink -q create "Fix bug" -p high # Outputs just the ID number
@@ -71,9 +71,9 @@ Every `crosslink comment` MUST include `--kind` to categorize the comment for au
7171
- `--kind observation` — when you discover something noteworthy
7272

7373
```bash
74-
crosslink comment <id> "Will refactor auth module to use middleware pattern" --kind plan
75-
crosslink comment <id> "Chose middleware over decorator — matches existing patterns" --kind decision
76-
crosslink comment <id> "Auth module refactored, 12 tests pass" --kind result
74+
crosslink issue comment <id> "Will refactor auth module to use middleware pattern" --kind plan
75+
crosslink issue comment <id> "Chose middleware over decorator — matches existing patterns" --kind decision
76+
crosslink issue comment <id> "Auth module refactored, 12 tests pass" --kind result
7777
```
7878

7979
**You cannot omit `--kind`.** Even for brief comments, categorize them. The audit trail depends on it.
@@ -86,16 +86,16 @@ crosslink comment <id> "Auth module refactored, 12 tests pass" --kind result
8686

8787
### Dependencies
8888
```bash
89-
crosslink block 2 1 # Issue 2 blocked by issue 1
90-
crosslink ready # Show unblocked work
89+
crosslink issue block 2 1 # Issue 2 blocked by issue 1
90+
crosslink issue ready # Show unblocked work
9191
```
9292

9393
### Large Implementations (500+ lines)
94-
1. Create parent issue: `crosslink create "<feature>" -p high`
95-
2. Break into subissues: `crosslink subissue <id> "<component>"`
94+
1. Create parent issue: `crosslink issue create "<feature>" -p high`
95+
2. Break into subissues: `crosslink issue subissue <id> "<component>"`
9696
3. Work one subissue at a time, close each when done
9797

9898
### Context Window Management
9999
When conversation is long or task needs many steps:
100-
1. Create tracking issue: `crosslink create "Continue: <summary>" -p high`
101-
2. Add notes: `crosslink comment <id> "<what's done, what's next>"`
100+
1. Create tracking issue: `crosslink issue create "Continue: <summary>" -p high`
101+
2. Add notes: `crosslink issue comment <id> "<what's done, what's next>"`

.crosslink/rules/tracking-relaxed.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ Crosslink issue tracking is available but not required. Use it when it helps.
44

55
```bash
66
crosslink quick "title" -p <priority> -l <label> # Create + label + work
7-
crosslink list -s open # See open issues
8-
crosslink close <id> # Close issue
7+
crosslink issue list -s open # See open issues
8+
crosslink issue close <id> # Close issue
99
crosslink session work <id> # Mark focus
1010
crosslink session end --notes "..." # Save handoff
1111
```

.crosslink/rules/tracking-strict.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -46,28 +46,28 @@ Add labels to control CHANGELOG.md section:
4646
crosslink quick "Fix login validation error on empty email" -p medium -l bug
4747

4848
# Or use create with flags
49-
crosslink create "Fix login validation error on empty email" -p medium --label bug --work
49+
crosslink issue create "Fix login validation error on empty email" -p medium --label bug --work
5050

5151
# Multi-part feature → Epic with subissues
52-
crosslink create "Add user authentication system" -p high --label feature
53-
crosslink subissue 1 "Add user registration endpoint"
54-
crosslink subissue 1 "Add login endpoint with JWT tokens"
55-
crosslink subissue 1 "Add session middleware for protected routes"
52+
crosslink issue create "Add user authentication system" -p high --label feature
53+
crosslink issue subissue 1 "Add user registration endpoint"
54+
crosslink issue subissue 1 "Add login endpoint with JWT tokens"
55+
crosslink issue subissue 1 "Add session middleware for protected routes"
5656

5757
# Mark what you're working on
5858
crosslink session work 1
5959

6060
# Add context as you discover things
61-
crosslink comment 1 "Found existing auth helper in utils/auth.ts" --kind observation
61+
crosslink issue comment 1 "Found existing auth helper in utils/auth.ts" --kind observation
6262

6363
# Close when done — auto-updates CHANGELOG.md
64-
crosslink close 1
64+
crosslink issue close 1
6565

6666
# Skip changelog for internal/refactor work
67-
crosslink close 1 --no-changelog
67+
crosslink issue close 1 --no-changelog
6868

6969
# Batch close
70-
crosslink close-all --no-changelog
70+
crosslink issue close-all --no-changelog
7171

7272
# Quiet mode for scripting
7373
crosslink -q create "Fix bug" -p high # Outputs just the ID number
@@ -85,13 +85,13 @@ Your auto-memory directory (`~/.claude/projects/.../memory/`) contains plans, ar
8585

8686
```bash
8787
# Example: translating a memory plan into tracked work
88-
crosslink create "Implement webhook retry system" -p high --label feature
89-
crosslink comment 1 "Per memory/architecture.md: retry with exponential backoff, max 5 attempts, dead-letter queue after exhaustion. See 'Webhook Reliability' section." --kind plan
90-
crosslink subissue 1 "Add retry queue with exponential backoff (max 5 attempts)"
91-
crosslink comment 2 "Backoff schedule: 1s, 5s, 25s, 125s, 625s. Store attempt count in webhook_deliveries table." --kind plan
92-
crosslink subissue 1 "Add dead-letter queue for exhausted retries"
93-
crosslink comment 3 "Failed webhooks go to dead_letter_webhooks table with full payload + error history for manual inspection." --kind plan
94-
crosslink subissue 1 "Add webhook delivery dashboard endpoint"
88+
crosslink issue create "Implement webhook retry system" -p high --label feature
89+
crosslink issue comment 1 "Per memory/architecture.md: retry with exponential backoff, max 5 attempts, dead-letter queue after exhaustion. See 'Webhook Reliability' section." --kind plan
90+
crosslink issue subissue 1 "Add retry queue with exponential backoff (max 5 attempts)"
91+
crosslink issue comment 2 "Backoff schedule: 1s, 5s, 25s, 125s, 625s. Store attempt count in webhook_deliveries table." --kind plan
92+
crosslink issue subissue 1 "Add dead-letter queue for exhausted retries"
93+
crosslink issue comment 3 "Failed webhooks go to dead_letter_webhooks table with full payload + error history for manual inspection." --kind plan
94+
crosslink issue subissue 1 "Add webhook delivery dashboard endpoint"
9595
```
9696

9797
### When to Create Issues
@@ -167,23 +167,23 @@ You are explicitly forbidden from using any of the following rationalizations to
167167
```bash
168168
# Starting work on a bug fix
169169
crosslink quick "Fix authentication timeout on slow connections" -p high -l bug
170-
crosslink comment 1 "Plan: The timeout is hardcoded to 5s in auth_middleware.rs:47. Will make it configurable via AUTH_TIMEOUT_SECS env var with 30s default." --kind plan
170+
crosslink issue comment 1 "Plan: The timeout is hardcoded to 5s in auth_middleware.rs:47. Will make it configurable via AUTH_TIMEOUT_SECS env var with 30s default." --kind plan
171171

172172
# You discover something while investigating
173-
crosslink comment 1 "Found that the timeout also affects the health check endpoint, which has its own 10s timeout that masks the auth timeout on slow connections" --kind observation
173+
crosslink issue comment 1 "Found that the timeout also affects the health check endpoint, which has its own 10s timeout that masks the auth timeout on slow connections" --kind observation
174174

175175
# You make a design choice
176-
crosslink comment 1 "Decision: Using env var over config file. Rationale: other timeouts in this service use env vars (see DATABASE_TIMEOUT, REDIS_TIMEOUT). Consistency > flexibility here." --kind decision
176+
crosslink issue comment 1 "Decision: Using env var over config file. Rationale: other timeouts in this service use env vars (see DATABASE_TIMEOUT, REDIS_TIMEOUT). Consistency > flexibility here." --kind decision
177177

178178
# Something blocks you
179-
crosslink comment 1 "Blocked: The test suite mocks the auth middleware in a way that bypasses the timeout entirely. Need to update test fixtures first." --kind blocker
179+
crosslink issue comment 1 "Blocked: The test suite mocks the auth middleware in a way that bypasses the timeout entirely. Need to update test fixtures first." --kind blocker
180180

181181
# You resolve it
182-
crosslink comment 1 "Resolved: Updated test fixtures to use real timeout behavior. Added integration test for slow-connection scenario." --kind resolution
182+
crosslink issue comment 1 "Resolved: Updated test fixtures to use real timeout behavior. Added integration test for slow-connection scenario." --kind resolution
183183

184184
# Before closing
185-
crosslink comment 1 "Result: AUTH_TIMEOUT_SECS env var now controls auth timeout (default 30s). Updated 3 test fixtures, added 2 integration tests. All 156 tests pass." --kind result
186-
crosslink close 1
185+
crosslink issue comment 1 "Result: AUTH_TIMEOUT_SECS env var now controls auth timeout (default 30s). Updated 3 test fixtures, added 2 integration tests. All 156 tests pass." --kind result
186+
crosslink issue close 1
187187
```
188188

189189
### Priority Guide
@@ -194,16 +194,16 @@ crosslink close 1
194194

195195
### Dependencies
196196
```bash
197-
crosslink block 2 1 # Issue 2 blocked by issue 1
198-
crosslink ready # Show unblocked work
197+
crosslink issue block 2 1 # Issue 2 blocked by issue 1
198+
crosslink issue ready # Show unblocked work
199199
```
200200

201201
### Large Implementations (500+ lines)
202-
1. Create parent issue: `crosslink create "<feature>" -p high`
203-
2. Break into subissues: `crosslink subissue <id> "<component>"`
202+
1. Create parent issue: `crosslink issue create "<feature>" -p high`
203+
2. Break into subissues: `crosslink issue subissue <id> "<component>"`
204204
3. Work one subissue at a time, close each when done
205205

206206
### Context Window Management
207207
When conversation is long or task needs many steps:
208-
1. Create tracking issue: `crosslink create "Continue: <summary>" -p high`
209-
2. Add notes: `crosslink comment <id> "<what's done, what's next>"`
208+
1. Create tracking issue: `crosslink issue create "Continue: <summary>" -p high`
209+
2. Add notes: `crosslink issue comment <id> "<what's done, what's next>"`

.gitignore

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
**/.DS_Store
2+
**/.ripsed/
23

34
/target/
45
/crosslink/target/
@@ -28,13 +29,35 @@ crosslink-enterprise/
2829
OPUS_4_6_SUGGESTIONS.md
2930

3031
# === Crosslink managed (do not edit between markers) ===
31-
# .crosslink/ — see .crosslink/.gitignore for machine-local state
32-
# Tracked: hook-config.json, rules/, .gitignore
32+
# .crosslink/ — machine-local state (never commit)
33+
.crosslink/issues.db
34+
.crosslink/issues.db-wal
35+
.crosslink/issues.db-shm
36+
.crosslink/agent.json
37+
.crosslink/session.json
38+
.crosslink/daemon.pid
39+
.crosslink/daemon.log
40+
.crosslink/last_test_run
41+
.crosslink/keys/
42+
.crosslink/.hub-cache/
43+
.crosslink/.knowledge-cache/
44+
.crosslink/.external-cache/
45+
.crosslink/.cache/
46+
.crosslink/hook-config.local.json
47+
.crosslink/integrations/
48+
.crosslink/rules.local/
49+
50+
# .crosslink/ — DO track these (project-level policy):
51+
# .crosslink/hook-config.json — shared team configuration
52+
# .crosslink/rules/ — project coding standards
53+
# .crosslink/.gitignore — inner gitignore for agent files
3354

3455
# .claude/ — auto-generated by crosslink init (not project source)
35-
.claude/settings.local.json
3656
.claude/hooks/
3757
.claude/commands/
3858
.claude/mcp/
39-
# Tracked: .claude/settings.json
59+
60+
# .claude/ — DO track these (if manually configured):
61+
# .claude/settings.json — Claude Code project settings
62+
# .claude/settings.local.json is per-developer, ignore separately if needed
4063
# === End crosslink managed ===

0 commit comments

Comments
 (0)