Skip to content

Commit c11b9b8

Browse files
chore: apply qualify-ticket-refs.sh — rewrite bare ticket/tk refs to use shim (merge worktree-20260323-204247)
2 parents ea05ae0 + 23f06e2 commit c11b9b8

File tree

77 files changed

+937
-475
lines changed

Some content is hidden

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

77 files changed

+937
-475
lines changed

CLAUDE.md

Lines changed: 16 additions & 16 deletions
Large diffs are not rendered by default.

plugins/dso/agents/complexity-evaluator.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ When no `tier_schema` is specified, default to `TRIVIAL`.
2222
### Step 1: Load Context
2323

2424
```bash
25-
tk show <ticket-id>
25+
.claude/scripts/dso ticket show <ticket-id>
2626
```
2727

2828
Read the ticket title, description, type, acceptance criteria, and any done definitions or success criteria. If a parent epic exists (`parent` field), also load:
2929

3030
```bash
31-
tk show <parent-epic-id>
31+
.claude/scripts/dso ticket show <parent-epic-id>
3232
```
3333

3434
Note any preplanning split-candidate flags or risk register entries.

plugins/dso/docs/CONFIGURATION-REFERENCE.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,9 @@ When `ci.workflow_name` is set, `merge.ci_workflow_name` is silently ignored. Wh
275275

276276
| | |
277277
|---|---|
278-
| **Description** | Jira project key used by `tk sync`. The `JIRA_PROJECT` environment variable takes precedence over this value. |
278+
| **Description** | Jira project key used by `.claude/scripts/dso ticket sync`. The `JIRA_PROJECT` environment variable takes precedence over this value. |
279279
| **Accepted values** | Jira project key string (e.g., `DIG`, `MYPROJ`) |
280-
| **Default** | No default — required when using `tk sync` |
280+
| **Default** | No default — required when using `.claude/scripts/dso ticket sync` |
281281
| **Used by** | the tk script (`.claude/scripts/dso tk`), `.claude/scripts/dso jira-reset-sync.sh`, `.claude/scripts/dso reset-tickets.sh` |
282282

283283
---
@@ -287,7 +287,7 @@ When `ci.workflow_name` is set, `merge.ci_workflow_name` is silently ignored. Wh
287287
| | |
288288
|---|---|
289289
| **Description** | Command to search for existing tickets by substring. Used by `plugins/dso/hooks/lib/pre-bash-functions.sh` (commit-failure-tracker) to detect duplicate tickets. |
290-
| **Accepted values** | Any shell command string (e.g., `grep -rl`, `ticket list --filter`) |
290+
| **Accepted values** | Any shell command string (e.g., `grep -rl`, `.claude/scripts/dso ticket list --filter`) |
291291
| **Default** | `grep -rl` |
292292
| **Used by** | `plugins/dso/hooks/lib/pre-bash-functions.sh` |
293293

@@ -298,8 +298,8 @@ When `ci.workflow_name` is set, `merge.ci_workflow_name` is silently ignored. Wh
298298
| | |
299299
|---|---|
300300
| **Description** | Command to create a new tracking issue. Used when a validation failure has no existing ticket. |
301-
| **Accepted values** | Any shell command string (e.g., `ticket create`, `gh issue create`) |
302-
| **Default** | `ticket create` |
301+
| **Accepted values** | Any shell command string (e.g., `.claude/scripts/dso ticket create`, `gh issue create`) |
302+
| **Default** | `.claude/scripts/dso ticket create` |
303303
| **Used by** | `.claude/scripts/dso check-validation-failures.sh`, `plugins/dso/hooks/lib/pre-bash-functions.sh` |
304304

305305
---
@@ -745,7 +745,7 @@ When `ci.workflow_name` is set, `merge.ci_workflow_name` is silently ignored. Wh
745745
746746
| | |
747747
|---|---|
748-
| **Description** | Jira project key for ticket sync. Only needed when using `tk sync` with Jira. Superseded by `jira.project` — prefer `jira.project` for new configurations. |
748+
| **Description** | Jira project key for .claude/scripts/dso ticket sync. Only needed when using `.claude/scripts/dso ticket sync` with Jira. Superseded by `jira.project` — prefer `jira.project` for new configurations. |
749749
| **Accepted values** | Jira project key string (e.g., `DTL`, `MYPROJ`) |
750750
| **Default** | Absent |
751751
| **Used by** | the tk script (`.claude/scripts/dso tk`) (sync subcommand) |
@@ -829,7 +829,7 @@ These variables are consumed by DSO hooks, scripts, and skills at runtime. They
829829
| | |
830830
|---|---|
831831
| **Description** | Base URL of the Jira instance (e.g., `https://myorg.atlassian.net`). Used by the tk script (`.claude/scripts/dso tk`) when adding remote links to Jira issues. |
832-
| **Required** | Required for `tk sync` remote-link features |
832+
| **Required** | Required for `.claude/scripts/dso ticket sync` remote-link features |
833833
| **Usage context** | the tk script (`.claude/scripts/dso tk`) (sync subcommand, remote link creation) |
834834
835835
---
@@ -839,7 +839,7 @@ These variables are consumed by DSO hooks, scripts, and skills at runtime. They
839839
| | |
840840
|---|---|
841841
| **Description** | Jira username (email address) for API authentication. Used with `JIRA_API_TOKEN` via HTTP Basic Auth. |
842-
| **Required** | Required for `tk sync` remote-link features |
842+
| **Required** | Required for `.claude/scripts/dso ticket sync` remote-link features |
843843
| **Usage context** | the tk script (`.claude/scripts/dso tk`) (sync subcommand) |
844844
845845
---
@@ -849,7 +849,7 @@ These variables are consumed by DSO hooks, scripts, and skills at runtime. They
849849
| | |
850850
|---|---|
851851
| **Description** | Jira API token for authentication. Generate at https://id.atlassian.com/manage-profile/security/api-tokens. Used with `JIRA_USER` via HTTP Basic Auth. |
852-
| **Required** | Required for `tk sync` remote-link features |
852+
| **Required** | Required for `.claude/scripts/dso ticket sync` remote-link features |
853853
| **Usage context** | the tk script (`.claude/scripts/dso tk`) (sync subcommand) |
854854
855855
---
@@ -858,8 +858,8 @@ These variables are consumed by DSO hooks, scripts, and skills at runtime. They
858858
859859
| | |
860860
|---|---|
861-
| **Description** | Jira project key (e.g., `DIG`). Takes precedence over `jira.project` in `dso-config.conf`. Required by `tk sync` unless `jira.project` is configured. |
862-
| **Required** | Required for `tk sync` unless `jira.project` is set in config |
861+
| **Description** | Jira project key (e.g., `DIG`). Takes precedence over `jira.project` in `dso-config.conf`. Required by `.claude/scripts/dso ticket sync` unless `jira.project` is configured. |
862+
| **Required** | Required for `.claude/scripts/dso ticket sync` unless `jira.project` is set in config |
863863
| **Usage context** | the tk script (`.claude/scripts/dso tk`), `.claude/scripts/dso jira-reset-sync.sh`, `.claude/scripts/dso reset-tickets.sh` |
864864
865865
---
@@ -1002,7 +1002,7 @@ These variables are consumed by DSO hooks, scripts, and skills at runtime. They
10021002
10031003
| | |
10041004
|---|---|
1005-
| **Description** | When set to `1`, suppresses the worktree push step during `tk sync`. Used internally by `.claude/scripts/dso reset-tickets.sh` when doing a bulk sync to prevent duplicate push operations. |
1005+
| **Description** | When set to `1`, suppresses the worktree push step during `.claude/scripts/dso ticket sync`. Used internally by `.claude/scripts/dso reset-tickets.sh` when doing a bulk sync to prevent duplicate push operations. |
10061006
| **Required** | Internal — set and unset by `.claude/scripts/dso reset-tickets.sh` |
10071007
| **Usage context** | the tk script (`.claude/scripts/dso tk`) (sync subcommand), `.claude/scripts/dso reset-tickets.sh` |
10081008
@@ -1032,6 +1032,6 @@ These variables are consumed by DSO hooks, scripts, and skills at runtime. They
10321032
10331033
| | |
10341034
|---|---|
1035-
| **Description** | Override for the ticket create command used by `plugins/dso/hooks/lib/pre-bash-functions.sh` (commit-failure-tracker). When set, takes precedence over `issue_tracker.create_cmd` from config. Used in tests. |
1035+
| **Description** | Override for the .claude/scripts/dso ticket create command used by `plugins/dso/hooks/lib/pre-bash-functions.sh` (commit-failure-tracker). When set, takes precedence over `issue_tracker.create_cmd` from config. Used in tests. |
10361036
| **Required** | Optional — testing override only |
10371037
| **Usage context** | `plugins/dso/hooks/lib/pre-bash-functions.sh` |

plugins/dso/docs/INSTALL.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ except `version`. Below are the most commonly needed keys for initial setup:
125125
| `commands.format` | stack-derived | Auto-formatter command |
126126
| `dso.plugin_root` | set by `dso-setup.sh` | Absolute path to DSO plugin. Written by `dso-setup.sh`; rarely set manually. |
127127
| `ci.workflow_name` | absent | GitHub Actions workflow name for post-push CI trigger recovery (e.g. `CI`). Preferred over deprecated `merge.ci_workflow_name`. |
128-
| `jira.project` | absent | Jira project key for `tk sync` (e.g. `DIG`) |
128+
| `jira.project` | absent | Jira project key for `.claude/scripts/dso ticket sync` (e.g. `DIG`) |
129129
| `monitoring.tool_errors` | absent (disabled) | Set to `true` to enable tool error tracking and auto-ticket creation |
130130

131131
For the full key reference including staging, CI, design, infrastructure, and worktree keys,
@@ -139,7 +139,7 @@ see **[docs/CONFIGURATION-REFERENCE.md](CONFIGURATION-REFERENCE.md)**.
139139
| `JIRA_USER` | Jira account email address |
140140
| `JIRA_API_TOKEN` | Jira API token (generate at https://id.atlassian.com/manage-profile/security/api-tokens) |
141141

142-
These are only required when using `tk sync`. For the full environment variable reference, see
142+
These are only required when using `.claude/scripts/dso ticket sync`. For the full environment variable reference, see
143143
**[docs/CONFIGURATION-REFERENCE.md — Section 2](CONFIGURATION-REFERENCE.md#section-2--environment-variables)**.
144144

145145
---
@@ -148,7 +148,7 @@ These are only required when using `tk sync`. For the full environment variable
148148

149149
### acli (Atlassian CLI)
150150

151-
`acli` enables Jira ticket management from the command line as part of `tk sync` remote link
151+
`acli` enables Jira ticket management from the command line as part of `.claude/scripts/dso ticket sync` remote link
152152
creation workflows. It is not required for core DSO functionality.
153153

154154
Install:
@@ -190,18 +190,18 @@ prompt. No manual configuration is required.
190190

191191
---
192192

193-
## tk sync-events Prerequisites
193+
## .claude/scripts/dso ticket sync Prerequisites
194194

195-
`tk sync-events` syncs the tickets branch with a shared remote using a split-phase protocol
195+
`.claude/scripts/dso ticket sync` syncs the tickets branch with a shared remote using a split-phase protocol
196196
(fetch → lock → merge → unlock → push). It requires the following setup before first use:
197197

198198
| Requirement | How to satisfy |
199199
|---|---|
200-
| `.tickets-tracker/` initialized | Run `ticket init` from the repo root (see `plugins/dso/scripts/ticket-init.sh`) |
200+
| `.tickets-tracker/` initialized | Run `.claude/scripts/dso ticket init` from the repo root (see `plugins/dso/scripts/ticket-init.sh`) |
201201
| `origin` remote configured | `git -C .tickets-tracker remote add origin <url>` |
202202
| `tickets` branch exists in remote | `git -C .tickets-tracker push origin tickets:tickets` (on first environment only) |
203203

204-
If `.tickets-tracker/` has not been initialized, `tk sync-events` exits with:
204+
If `.tickets-tracker/` has not been initialized, `.claude/scripts/dso ticket sync` exits with:
205205
```
206206
error: ticket tracker not initialized (.tickets-tracker/ not found)
207207
```

plugins/dso/docs/PLAN-APPROVAL-WORKFLOW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
After a plan is approved via ExitPlanMode, do NOT begin implementation immediately. Do NOT prompt to clear context. Instead:
44

5-
1. **Create a ticket epic** (`ticket create epic "<plan title>"`) from the plan title and context description
5+
1. **Create a ticket epic** (`.claude/scripts/dso ticket create epic "<plan title>"`) from the plan title and context description
66
2. **Run `/dso:preplanning`** on the newly created epic to decompose it into prioritized user stories with measurable done definitions
77
3. **Validate issue health**: Run `validate-issues.sh --quick`
88
4. **Report**: Epic ID, user story dependency graph, and which tasks are ready to work

plugins/dso/docs/PRE-COMMIT-TIMEOUT-WRAPPER.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ The wrapper reads two keys from `dso-config.conf` via `read-config.sh`:
2121
| Key | Purpose | Default |
2222
|-----|---------|---------|
2323
| `session.artifact_prefix` | Prefix for `/tmp` artifact directories | `<repo-basename>-test-artifacts` |
24-
| `issue_tracker.create_cmd` | Command to create a tracking ticket (e.g., `ticket create`) | absent = skip ticket creation with warning |
24+
| `issue_tracker.create_cmd` | Command to create a tracking ticket (e.g., `.claude/scripts/dso ticket create`) | absent = skip ticket creation with warning |
2525

2626
Example config:
2727

2828
```conf
2929
session.artifact_prefix=myproject-test-artifacts
30-
issue_tracker.create_cmd=ticket create
30+
issue_tracker.create_cmd=.claude/scripts/dso ticket create
3131
```
3232

3333
## Timeout Detection

plugins/dso/docs/ROLLBACK-PROCEDURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ git revert "$REF_SHA"
6363
Verify:
6464

6565
```bash
66-
grep -r 'tk show\|tk create\|tk list' plugins/dso/skills/ | head -5
66+
grep -r '.claude/scripts/dso ticket show\|tk create\|tk list' plugins/dso/skills/ | head -5
6767
```
6868

6969
## Full Rollback (both commits)

plugins/dso/docs/SUB-AGENT-BOUNDARIES.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Rules for all sub-agents dispatched by orchestrators (`/dso:sprint`, `/dso:debug
66

77
Sub-agents must NOT:
88
- `git commit`, `git push` — orchestrator handles all commits
9-
- `ticket transition <id> open closed`, `ticket link`, `ticket transition <id> <current> <status>` — orchestrator manages issue lifecycle
9+
- `.claude/scripts/dso ticket transition <id> open closed`, `.claude/scripts/dso ticket link`, `.claude/scripts/dso ticket transition <id> <current> <status>` — orchestrator manages issue lifecycle
1010
- Invoke `/dso:commit`, `/dso:review`, or any slash-command — sub-agents are workers, not orchestrators
1111
- Dispatch nested Task tool calls or code-review sub-agents
1212
- **NEVER set `isolation: "worktree"` on this sub-agent.** Code-review and fix-resolution
@@ -32,16 +32,16 @@ Sub-agents MUST:
3232
- Run `pwd` first to confirm working directory
3333
- Write code + tests (TDD: tests before implementation when possible)
3434
- Run `make format-check && make lint` from `app/`, then `$(git rev-parse --show-toplevel)/plugins/dso/scripts/validate.sh --ci` as final validation
35-
- Write checkpoint notes: `ticket comment {id} "CHECKPOINT N/6: ..."`
35+
- Write checkpoint notes: `.claude/scripts/dso ticket comment {id} "CHECKPOINT N/6: ..."`
3636
- Use absolute paths for scripts: `$(git rev-parse --show-toplevel)/scripts/`
3737
- Follow existing code patterns and naming conventions
3838
- Read code before modifying it
3939

4040
## Permitted Actions
4141

4242
Sub-agents MAY:
43-
- `ticket create "..." --parent <parent-id> --type bug` for discovered bugs (use `--type bug` when filing defects, not `--type task`)
44-
- `ticket comment <id> "..."` for checkpoint progress notes
43+
- `.claude/scripts/dso ticket create "..." --parent <parent-id> --type bug` for discovered bugs (use `--type bug` when filing defects, not `--type task`)
44+
- `.claude/scripts/dso ticket comment <id> "..."` for checkpoint progress notes
4545
- Read any file in the repo to understand context
4646
- Write discovery files to `$ARTIFACTS_DIR/agent-discoveries/<task-id>.json` (resolve via: `source ${CLAUDE_PLUGIN_ROOT}/hooks/lib/deps.sh && get_artifacts_dir`) (atomic: write `.tmp`, then `mv`) when encountering bugs, missing dependencies, API changes, or convention violations during execution. Schema: `{"task_id": "<id>", "type": "<bug|dependency|api_change|convention>", "summary": "<one-line>", "affected_files": ["<path>", ...]}`. Discovery writing is non-fatal — failures must not block task completion.
4747
- Read `${TMPDIR:-/tmp}/dso-blackboard-<worktree-name>/blackboard.json` for file ownership awareness (written by orchestrator before dispatch). Respect ownership boundaries: only modify files listed under your ownership; report concerns for files owned by other agents. If a required modification falls outside your listed `files_owned`, add a checkpoint note explaining the deviation before proceeding.
@@ -77,7 +77,7 @@ Dispatch failure retries are sequential and do not count toward batch size limit
7777

7878
## Checkpoint Protocol
7979

80-
Sub-agents write progress via `ticket comment {id} "CHECKPOINT N/6: ..."`:
80+
Sub-agents write progress via `.claude/scripts/dso ticket comment {id} "CHECKPOINT N/6: ..."`:
8181

8282
| Checkpoint | Meaning |
8383
|-----------|---------|

plugins/dso/docs/WORKTREE-GUIDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,8 +508,8 @@ claude
508508
Work normally -- write code, run tests, commit. Ticket commands work as usual:
509509

510510
```bash
511-
tk ready
512-
ticket transition <id> in_progress
511+
.claude/scripts/dso ticket list
512+
.claude/scripts/dso ticket transition <id> in_progress
513513
# ... do the work ...
514514
make lint && make test
515515
git add <files> && git commit -m "feat: auth redesign"

plugins/dso/docs/adr/0001-outbound-jira-bridge.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Two constraints make a naive synchronous approach unworkable:
1919
- **SC9 (no local credentials)**: Jira API credentials must not be required on developer machines.
2020
Storing long-lived API tokens locally increases the blast radius of a compromised workstation.
2121

22-
`tk sync` (the existing local synchronization command) runs the Atlassian CLI (ACLI) directly.
22+
`.claude/scripts/dso ticket sync` (the existing local synchronization command) runs the Atlassian CLI (ACLI) directly.
2323
This requires local Jira credentials and runs synchronously in the developer's shell session.
2424
It cannot satisfy SC1 (it is a pull, not a push trigger) or SC9 (credentials must be present
2525
locally).
@@ -98,18 +98,18 @@ fields (`event_type`, `jira_key`, `local_id`, `env_id`, `timestamp`, `run_id`) a
9898

9999
## Alternatives Considered
100100

101-
### Alternative: Extend `tk sync` to run in CI
101+
### Alternative: Extend `.claude/scripts/dso ticket sync` to run in CI
102102

103-
Run the existing `tk sync` command in a CI step instead of a dedicated bridge script.
103+
Run the existing `.claude/scripts/dso ticket sync` command in a CI step instead of a dedicated bridge script.
104104

105105
**Rejected** because:
106-
- `tk sync` requires local ACLI credentials to be present on the runner or passed as environment
106+
- `.claude/scripts/dso ticket sync` requires local ACLI credentials to be present on the runner or passed as environment
107107
variables. While CI can supply secrets, this approach re-introduces credential management
108108
complexity that the bridge pattern avoids.
109-
- `tk sync` runs synchronously and performs a full incremental scan of the ticket store. The
109+
- `.claude/scripts/dso ticket sync` runs synchronously and performs a full incremental scan of the ticket store. The
110110
outbound bridge uses `git diff` to process only the events introduced by the triggering commit,
111111
which is significantly more efficient for large ticket stores.
112-
- `tk sync` does not emit SYNC events — it cannot serve as the emitter side of the
112+
- `.claude/scripts/dso ticket sync` does not emit SYNC events — it cannot serve as the emitter side of the
113113
outbound/inbound bridge contract.
114114
- Cannot satisfy SC1 (push-trigger) without additional wrapper logic equivalent to what the
115115
outbound bridge already provides.

0 commit comments

Comments
 (0)