Skip to content

Commit 98aa602

Browse files
feat(dso-fel5): remove pre-compact checkpoint system (batch 2)
Deletes hooks/pre-compact-checkpoint.sh, post-compact-review-check.sh, pre-push-sentinel-check.sh, and scripts/analyze-precompact-telemetry.sh. Removes _phase_checkpoint_verify from merge-to-main.sh and checkpoint marker scanning from health-check.sh. Drops .checkpoint-pending-rollback from .gitignore. Deletes all 15 checkpoint test files. Updates shared test files to remove checkpoint references (allowlist, failure-guard, standalone-hooks, health-check, merge-to-main, merge-retry-budget). Closes: dso-d8xe, dso-dnq2, dso-q0df, dso-j1kw, dso-5lb8, dso-8fc5, dso-jneo Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 8cc462b commit 98aa602

Some content is hidden

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

43 files changed

+248
-4087
lines changed

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ node_modules/
2222
# Project-specific config (created from docs/workflow-config.example.conf)
2323
workflow-config.conf
2424

25-
# Checkpoint marker — written by pre-compact-checkpoint.sh, cleaned after merge/review
26-
.checkpoint-pending-rollback
27-
2825
# macOS
2926
.DS_Store
3027

.tickets/.sync-state.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,6 @@
227227
"jira_hash": "b2fcb1e44695c32874c75055e4b8c9e8",
228228
"last_synced": "2026-03-17T18:34:36Z"
229229
},
230-
"last_sync_commit": "8b6aa5bc890ad3dfc992aa43aa2e0ee1925b1bbc",
231-
"last_pull_timestamp": "2026-03-18T18:29:19Z"
230+
"last_sync_commit": "8cc462b1dfb4051c690e5d3b7be0b78bcfeaa635",
231+
"last_pull_timestamp": "2026-03-18T18:55:58Z"
232232
}

.tickets/dso-1f7p.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
id: dso-1f7p
3+
status: open
4+
deps: [dso-hmb3, dso-7idt]
5+
parent: dso-6524
6+
links: []
7+
created: 2026-03-18T18:47:52Z
8+
type: story
9+
priority: 2
10+
assignee: Joe Oakhart
11+
---
12+
# Update project docs to reflect the plugin/project separation
13+
14+
15+
## Notes
16+
17+
**2026-03-18T18:50:00Z**
18+
19+
20+
## What
21+
Update existing project documentation files that reference old paths (scripts/, hooks/, or top-level directory structure) and will become stale after the restructure. Targets: WORKTREE-GUIDE.md, INSTALL.md, CONFIGURATION-REFERENCE.md, and any other docs/ files with stale references. Does not create new files.
22+
23+
## Why
24+
Existing docs that reference pre-restructure paths mislead developers navigating the project after S1 lands. This story ensures long-lived reference docs stay accurate.
25+
26+
## Scope
27+
IN: Update existing docs/ files only — no new documentation files; run stale-reference scan across docs/
28+
OUT: CLAUDE.md (covered in dso-zse0); plugin-internal docs that move with the plugin as part of S1; .github/workflows/ CI files
29+
30+
## Done Definitions
31+
- When this story is complete, no file in docs/ or examples/ contains bare scripts/ or hooks/ references that would mislead a developer about the post-restructure directory layout (verified by grep scan)
32+
<- Satisfies: validate.sh --ci exits 0 after restructure (no stale paths that fail CI checks)
33+
34+
## Considerations
35+
- [Maintainability] Run grep -r across docs/ after S1 completes to generate an inventory of stale references before updating
36+
- [Maintainability] Follow .claude/docs/DOCUMENTATION-GUIDE.md for formatting and conventions when rewriting stale sections
37+
38+
Follow .claude/docs/DOCUMENTATION-GUIDE.md for documentation formatting, structure, and conventions.
39+

.tickets/dso-3z2v.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-3z2v
3-
status: open
3+
status: in_progress
44
deps: [dso-zq4q]
55
links: []
66
created: 2026-03-18T07:37:13Z

.tickets/dso-5lb8.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-5lb8
3-
status: open
3+
status: in_progress
44
deps: []
55
links: []
66
created: 2026-03-18T17:15:25Z

.tickets/dso-6524.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
id: dso-6524
33
status: open
4-
deps: []
4+
deps: [dso-3z2v, dso-q523]
55
links: []
66
created: 2026-03-17T18:34:37Z
77
type: epic
@@ -13,3 +13,30 @@ jira_key: DIG-40
1313

1414
We need to separate the DSO plugin that client projects install from the DSO project where we’re developing the plugin. This likely means moving plugin files to a sub-directory in the repo and keeping project files at the root. For example, workflow-config.conf needs to be in git for the project, but should not be distributed with the plugin. The same is true of our tests: they should be in the project, but not distributed with the plugin.
1515

16+
17+
## Notes
18+
19+
**2026-03-18T18:39:22Z**
20+
21+
22+
## Context
23+
DSO developers working on this repo cannot use git worktrees today because `workflow-config.conf` must not be committed — doing so would distribute it to every client project that installs the plugin, since the plugin root and the repo root are the same directory. All plugin content (`skills/`, `hooks/`, `commands/`, `scripts/`, `docs/`) lives at the repo root alongside project-only artifacts (`.tickets/`, `tests/`, `CLAUDE.md`, `workflow-config.conf`), so every plugin installation inadvertently receives development artifacts that clients should never see. Moving the plugin to `plugins/dso/` with a marketplace `git-subdir` entry cleanly separates what is distributed from what is project-specific, and restores the ability to commit `workflow-config.conf` and use git worktrees during DSO development.
24+
25+
## Migration
26+
- **Move** to `plugins/dso/`: `skills/`, `hooks/`, `commands/`, `scripts/`, `docs/`, `.claude-plugin/plugin.json`
27+
- **Keep at root** (not distributed): `workflow-config.conf`, `tests/`, `.tickets/`, `CLAUDE.md`, `examples/`
28+
29+
## Success Criteria
30+
1. `git worktree add ../dso-worktree main` produces a worktree containing `workflow-config.conf` — non-empty, tracked (`git ls-files workflow-config.conf` returns the path from worktree root), no symlink or manual copy required.
31+
2. `plugins/dso/` contains `skills/`, `hooks/`, `commands/`, `scripts/`, `docs/`; repo root has none of those at top level; `workflow-config.conf`, `tests/`, `.tickets/`, `CLAUDE.md` remain at root.
32+
3. Manual smoke test after `bash plugins/dso/scripts/dso-setup.sh <tmpdir>` (tmpdir = `git init`'d temp dir): (a) `.git/hooks/pre-commit` exists; (b) `.claude/scripts/dso` is executable; (c) `CLAUDE_PLUGIN_ROOT=$(pwd)/plugins/dso bash "$tmpdir/.claude/scripts/dso" validate.sh --help` exits 0.
33+
4. `grep -rE '\bscripts/[a-zA-Z_-]' CLAUDE.md examples/CLAUDE.md.example | grep -v '\.claude/scripts/dso' | grep -v 'plugins/dso/scripts/'` returns no matches.
34+
5. `.claude-plugin/marketplace.json` source entry uses `{"type": "github", "repo": "<from git remote>", "git-subdir": "plugins/dso"}`; `plugins/dso/.claude-plugin/plugin.json` lists relative paths (e.g., `"./commands/"`).
35+
6. (Merge gate) `bash scripts/validate.sh --ci` exits 0 from repo root; GitHub Actions CI passes on the restructured branch.
36+
37+
## Dependencies
38+
`dso-3z2v` (pre-commit hook installation to `dso-setup.sh`) and `dso-q523` (`validate.sh` hardcoded `app/` path) both touch files this epic moves — must be merged before this epic begins. Preflight: confirm both are `status: closed` before starting.
39+
40+
## Approach
41+
Follow the `plugins/<name>/` pattern from `anthropics/claude-plugins-official`. Create `examples/CLAUDE.md.example` (shim-based script reference template, min. 8 Quick Reference rows). Update `check-skill-refs.sh` glob patterns to cover `plugins/dso/` paths.
42+

.tickets/dso-7idt.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
id: dso-7idt
3+
status: open
4+
deps: [dso-hmb3]
5+
parent: dso-6524
6+
links: []
7+
created: 2026-03-18T18:47:52Z
8+
type: story
9+
priority: 1
10+
assignee: Joe Oakhart
11+
---
12+
# As a client project developer installing DSO, dso-setup.sh works correctly from its new location in plugins/dso/scripts/
13+
14+
15+
## Notes
16+
17+
**2026-03-18T18:49:26Z**
18+
19+
20+
## What
21+
Verify and update dso-setup.sh (now at plugins/dso/scripts/dso-setup.sh) path assumptions after the restructure. Run a smoke test to confirm the pre-commit hook and shim install correctly into a client project.
22+
23+
## Why
24+
The installation contract is the most user-visible part of the plugin. If dso-setup.sh breaks after the restructure, client projects cannot install or update DSO. This story confirms the distribution boundary works end-to-end.
25+
26+
## Scope
27+
IN: Audit and fix any hardcoded repo-root path assumptions in dso-setup.sh; manual smoke test (git init tmpdir, run dso-setup.sh, verify pre-commit hook plus shim plus shim execution)
28+
OUT: CLAUDE.md updates (dso-zse0); behavioral changes to dso-setup.sh beyond path fixes
29+
30+
## Done Definitions
31+
- When this story is complete, running bash plugins/dso/scripts/dso-setup.sh against a git-init temp directory exits 0 and produces a working pre-commit hook and executable shim at .claude/scripts/dso in the target directory
32+
<- Satisfies: smoke test (a) and (b)
33+
- When this story is complete, CLAUDE_PLUGIN_ROOT=$(pwd)/plugins/dso bash shim validate.sh --help exits 0 from the repo root
34+
<- Satisfies: smoke test (c): shim resolves and forwards correctly
35+
36+
## Considerations
37+
- [Reliability] dso-setup.sh may hardcode paths relative to its former repo-root location — run a grep scan for scripts/, hooks/, skills/ in dso-setup.sh before making targeted fixes
38+
- [Reliability] Verify that the marketplace.json git-subdir value (plugins/dso) aligns with what Claude Code sets as CLAUDE_PLUGIN_ROOT in production — the smoke test manually overrides this value; confirm real Claude Code plugin loading would set the same path
39+

.tickets/dso-8fc5.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-8fc5
3-
status: open
3+
status: in_progress
44
deps: []
55
links: []
66
created: 2026-03-18T17:15:25Z

.tickets/dso-d8xe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-d8xe
3-
status: open
3+
status: in_progress
44
deps: [dso-oqto]
55
links: []
66
created: 2026-03-18T17:30:23Z

.tickets/dso-dnq2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-dnq2
3-
status: open
3+
status: in_progress
44
deps: [dso-oqto]
55
links: []
66
created: 2026-03-18T17:30:10Z

0 commit comments

Comments
 (0)