Skip to content

Commit 915c1eb

Browse files
feat(dso-kknz): batch 14 — update docs, CLAUDE.md, and validate-config.sh refs
Replace all workflow-config.conf references in 10 docs files, CLAUDE.md, and validate-config.sh with .claude/dso-config.conf. Final docs cleanup pass for the config path migration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 5f329c2 commit 915c1eb

21 files changed

+81
-63
lines changed

.tickets/.sync-state.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,8 @@
449449
"last_synced": "2026-03-19T18:38:35Z",
450450
"local_hash": "14c516947a151a3db8bdec4010e2fd6e"
451451
},
452-
"last_pull_timestamp": "2026-03-20T16:20:43Z",
453-
"last_sync_commit": "f0c9d701ac15364adf6e42707e797b9fc1e6c9d3",
452+
"last_pull_timestamp": "2026-03-20T16:25:31Z",
453+
"last_sync_commit": "5f329c253c42fe35c97394ecd0814c4d8641bae8",
454454
"w21-5cqr": {
455455
"jira_hash": "bce29d76f01c58613ee99cb1dd03920d",
456456
"jira_key": "DIG-61",

.tickets/dso-0zsx.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-0zsx
3-
status: in_progress
3+
status: closed
44
deps: []
55
links: []
66
created: 2026-03-20T15:56:47Z

.tickets/dso-1kul.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-1kul
3-
status: in_progress
3+
status: closed
44
deps: []
55
links: []
66
created: 2026-03-20T15:56:10Z

.tickets/dso-5ewd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-5ewd
3-
status: in_progress
3+
status: closed
44
deps: []
55
links: []
66
created: 2026-03-20T15:57:21Z

.tickets/dso-kiue.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-kiue
3-
status: in_progress
3+
status: closed
44
deps: []
55
links: []
66
created: 2026-03-20T15:55:56Z

.tickets/dso-ul37.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-ul37
3-
status: in_progress
3+
status: closed
44
deps: []
55
links: []
66
created: 2026-03-20T15:59:51Z

.tickets/dso-uqm6.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-uqm6
3-
status: open
3+
status: in_progress
44
deps: []
55
links: []
66
created: 2026-03-20T15:55:41Z
@@ -44,3 +44,9 @@ Verification is via grep acceptance criterion.
4444
- [ ] Replacement text uses '.claude/dso-config.conf' or 'dso-config.conf' as appropriate for context
4545
Verify: grep -r 'dso-config.conf' $(git rev-parse --show-toplevel)/plugins/dso/docs/ | wc -l | awk '{exit ($1 < 5)}'
4646

47+
48+
## Notes
49+
50+
**2026-03-20T16:23:31Z**
51+
52+
CHECKPOINT 1/6: Task context loaded ✓

.tickets/dso-wmjr.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-wmjr
3-
status: open
3+
status: in_progress
44
deps: []
55
links: []
66
created: 2026-03-20T15:56:20Z
@@ -35,3 +35,9 @@ TDD Requirement: N/A — Unit test exemption applies (all 3 criteria met):
3535
- [ ] Updated references use 'dso-config.conf' or '.claude/dso-config.conf'
3636
Verify: grep 'dso-config.conf' $(git rev-parse --show-toplevel)/CLAUDE.md | wc -l | awk '{exit ($1 < 1)}'
3737

38+
39+
## Notes
40+
41+
**2026-03-20T16:23:28Z**
42+
43+
CHECKPOINT 1/6: Task context loaded ✓

.tickets/dso-xdd8.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-xdd8
3-
status: open
3+
status: in_progress
44
deps: []
55
links: []
66
created: 2026-03-20T15:57:07Z
@@ -56,3 +56,9 @@ However, manually verify the changed path logic is correct by reading surroundin
5656
- [ ] project-detect.sh port-detection path uses .claude/dso-config.conf
5757
Verify: grep '.claude/dso-config.conf' $(git rev-parse --show-toplevel)/plugins/dso/scripts/project-detect.sh | grep -q 'dso-config'
5858

59+
60+
## Notes
61+
62+
**2026-03-20T16:23:23Z**
63+
64+
CHECKPOINT 1/6: Task context loaded ✓

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Priority: 0-4 (0=critical, 4=backlog). Never use "high"/"medium"/"low".
5858
**Validation gate**: `validate.sh` writes state; hooks block sprint/epic if validation hasn't passed. `--verbose` for real-time progress.
5959
**Agent routing** (dynamic discovery): `discover-agents.sh` resolves routing categories (e.g., `test_fix_unit`, `complex_debug`) to the best available agent using `agent-routing.conf`. Optional plugins (feature-dev, error-debugging, playwright) are preferred when installed; all categories fall back to `general-purpose` with category-specific prompts from `prompts/fallback/<category>.md`. See `plugins/dso/docs/INSTALL.md` for optional plugin documentation.
6060
**Conflict avoidance** (multi-agent): Static file impact analysis, shared blackboard, agent discovery protocol, semantic conflict check — integrated into `/dso:sprint` and `/dso:debug-everything`.
61-
**This repo is the `dso` plugin.** Skills: interface-contracts, resolve-conflicts, tickets-health, design-onboarding, design-review, design-wireframe, ui-discover, debug-everything, sprint, brainstorm, preplanning, implementation-plan, fix-bug (canonical bug-fix workflow; replaces tdd-workflow for bug fixes), tdd-workflow (new feature TDD only), etc. Commands (commit, end, review) also come from the plugin. Skills are invoked as `/dso:skill-name` (fully qualified, required) or `/skill-name` (command alias, allowed but not preferred in docs). **Skill namespace qualification policy**: all skill invocations in in-scope files (plugins/dso/skills/, plugins/dso/docs/, plugins/dso/hooks/, plugins/dso/commands/, CLAUDE.md) MUST use the qualified `/dso:<skill-name>` form. `plugins/dso/scripts/check-skill-refs.sh` enforces this as a fatal CI check via `plugins/dso/scripts/validate.sh`; it exits non-zero when any unqualified reference is found. `plugins/dso/scripts/qualify-skill-refs.sh` is the one-shot bulk rewriter (idempotent) that transforms `/skill-name` → `/dso:skill-name` across all in-scope files — run it after adding new in-scope content with unqualified refs. Ticket scripts in `plugins/dso/scripts/` (tk, tk-sync-lib.sh, and 22+ utility scripts). Project-specific config in `workflow-config.conf` (flat KEY=VALUE format; keys: `format.*`, `ci.*`, `commands.*`, `jira.*`, `design.*`, `tickets.*`, `merge.*`, `version.*`). `version.*` config keys: `version.file_path` (path to the file holding the project's semver string; absent = skip version bumping; supported formats: `.json` → `version` key, `.toml` → `version` field, plaintext/no-extension → single semver line). `ci.*` config keys: `ci.workflow_name` (GitHub Actions workflow name for `gh workflow run`; absent = skip post-push CI trigger recovery — **preferred** over deprecated `merge.ci_workflow_name`). `merge.*` config keys: `merge.visual_baseline_path` (path to snapshot dir; absent = skip baseline intent check), `merge.ci_workflow_name` (**deprecated** — use `ci.workflow_name` instead; `merge-to-main.sh` falls back to this key with a deprecation warning when `ci.workflow_name` is absent), `merge.message_exclusion_pattern` (regex passed to `grep -vE` when composing merge message; default `^chore: post-merge cleanup`). Source of truth: `plugins/dso/scripts/merge-to-main.sh`. Phased workflow: `sync → merge → validate → push → archive → ci_trigger`; state file at `/tmp/merge-to-main-state-<branch>.json` (4h TTL) records completed phases for `--resume`; lock file at `/tmp/merge-to-main-lock-<hash>` prevents concurrent runs; SIGURG trap saves current phase to state file on interrupt. **Plugin portability**: All host-project path assumptions (app dir, make targets, Python version) are config-driven via `workflow-config.conf` — the plugin is portable to projects with different directory structures. **Host project script invocation**: Host projects call DSO scripts via `.claude/scripts/dso <script-name>` (shim). Install with `bash plugins/dso/scripts/dso-setup.sh [TARGET_REPO]` from the repo root; the shim resolves DSO_ROOT from `CLAUDE_PLUGIN_ROOT` env var or `dso.plugin_root` in `workflow-config.conf`.
61+
**This repo is the `dso` plugin.** Skills: interface-contracts, resolve-conflicts, tickets-health, design-onboarding, design-review, design-wireframe, ui-discover, debug-everything, sprint, brainstorm, preplanning, implementation-plan, fix-bug (canonical bug-fix workflow; replaces tdd-workflow for bug fixes), tdd-workflow (new feature TDD only), etc. Commands (commit, end, review) also come from the plugin. Skills are invoked as `/dso:skill-name` (fully qualified, required) or `/skill-name` (command alias, allowed but not preferred in docs). **Skill namespace qualification policy**: all skill invocations in in-scope files (plugins/dso/skills/, plugins/dso/docs/, plugins/dso/hooks/, plugins/dso/commands/, CLAUDE.md) MUST use the qualified `/dso:<skill-name>` form. `plugins/dso/scripts/check-skill-refs.sh` enforces this as a fatal CI check via `plugins/dso/scripts/validate.sh`; it exits non-zero when any unqualified reference is found. `plugins/dso/scripts/qualify-skill-refs.sh` is the one-shot bulk rewriter (idempotent) that transforms `/skill-name` → `/dso:skill-name` across all in-scope files — run it after adding new in-scope content with unqualified refs. Ticket scripts in `plugins/dso/scripts/` (tk, tk-sync-lib.sh, and 22+ utility scripts). Project-specific config in `.claude/dso-config.conf` (flat KEY=VALUE format; keys: `format.*`, `ci.*`, `commands.*`, `jira.*`, `design.*`, `tickets.*`, `merge.*`, `version.*`). `version.*` config keys: `version.file_path` (path to the file holding the project's semver string; absent = skip version bumping; supported formats: `.json` → `version` key, `.toml` → `version` field, plaintext/no-extension → single semver line). `ci.*` config keys: `ci.workflow_name` (GitHub Actions workflow name for `gh workflow run`; absent = skip post-push CI trigger recovery — **preferred** over deprecated `merge.ci_workflow_name`). `merge.*` config keys: `merge.visual_baseline_path` (path to snapshot dir; absent = skip baseline intent check), `merge.ci_workflow_name` (**deprecated** — use `ci.workflow_name` instead; `merge-to-main.sh` falls back to this key with a deprecation warning when `ci.workflow_name` is absent), `merge.message_exclusion_pattern` (regex passed to `grep -vE` when composing merge message; default `^chore: post-merge cleanup`). Source of truth: `plugins/dso/scripts/merge-to-main.sh`. Phased workflow: `sync → merge → validate → push → archive → ci_trigger`; state file at `/tmp/merge-to-main-state-<branch>.json` (4h TTL) records completed phases for `--resume`; lock file at `/tmp/merge-to-main-lock-<hash>` prevents concurrent runs; SIGURG trap saves current phase to state file on interrupt. **Plugin portability**: All host-project path assumptions (app dir, make targets, Python version) are config-driven via `.claude/dso-config.conf` — the plugin is portable to projects with different directory structures. **Host project script invocation**: Host projects call DSO scripts via `.claude/scripts/dso <script-name>` (shim). Install with `bash plugins/dso/scripts/dso-setup.sh [TARGET_REPO]` from the repo root; the shim resolves DSO_ROOT from `CLAUDE_PLUGIN_ROOT` env var or `dso.plugin_root` in `.claude/dso-config.conf`.
6262

6363
**Ticket index merge driver**: `.tickets/.index.json` conflicts auto-resolve via `plugins/dso/scripts/merge-ticket-index.py` (JSON union merge; theirs-wins on true conflicts). `.gitattributes` maps the file to the `tickets-index-merge` driver (register per-clone; see Quick Reference). `worktree-sync-from-main.sh` includes a script-level fallback for CI/fresh-clone environments where the driver is not registered. The pre-commit review gate (`pre-commit-review-gate.sh`) handles merge commits (`MERGE_HEAD`) natively — `git diff --cached` returns only staged files, so the gate classifies them correctly without any cross-worktree special-casing.
6464

@@ -72,7 +72,7 @@ Priority: 0-4 (0=critical, 4=backlog). Never use "high"/"medium"/"low".
7272
1. **Never close tasks before CI passes** — fix if you broke it; create tracking issue if pre-existing.
7373
2. **Never use `--no-verify`** without human approval. Pre-commit hooks: format-check (Ruff), lint (Ruff/MyPy). If hooks fail: `make format` for formatting; fix lint manually.
7474
3. **Tracking issues are auto-created** by commit-failure-tracker hook. Create manually for failures validation won't catch. Duplicates OK; gaps not.
75-
4. **Never use `app/` in paths when CWD is `app/`** — use `src/`, `tests/` directly. When CWD is the repo root, `app/` prefix is required. `.claude/` is always at the repo root; plugin scripts are at `plugins/dso/scripts/`. (This is this project's convention; `app/` is configured via `paths.app_dir` in `workflow-config.conf` and is project-specific, not a universal plugin requirement.)
75+
4. **Never use `app/` in paths when CWD is `app/`** — use `src/`, `tests/` directly. When CWD is the repo root, `app/` prefix is required. `.claude/` is always at the repo root; plugin scripts are at `plugins/dso/scripts/`. (This is this project's convention; `app/` is configured via `paths.app_dir` in `.claude/dso-config.conf` and is project-specific, not a universal plugin requirement.)
7676
5. **Never skip issue validation after creating issues or adding deps** — run `validate-issues.sh --quick --terse`.
7777
6. **Never create more than 5 sub-agents at a time** — batch into groups of 5.
7878
7. **Never launch new sub-agent batch without committing previous batch's results**#1 cause of lost work.

0 commit comments

Comments
 (0)