You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# 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.
Copy file name to clipboardExpand all lines: .tickets/dso-6524.md
+28-1Lines changed: 28 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
id: dso-6524
3
3
status: open
4
-
deps: []
4
+
deps: [dso-3z2v, dso-q523]
5
5
links: []
6
6
created: 2026-03-17T18:34:37Z
7
7
type: epic
@@ -13,3 +13,30 @@ jira_key: DIG-40
13
13
14
14
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.
15
15
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.
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.
# 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)
- 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
0 commit comments