Skip to content

Commit c284b47

Browse files
chore: auto-commit ticket changes before merge (merge worktree-20260322-120216)
2 parents cc25a16 + dea9465 commit c284b47

File tree

10 files changed

+164
-562
lines changed

10 files changed

+164
-562
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Digital Service Orchestra (DSO) — Continuous Integration
2-
# Runs shellcheck, Python linting, plugin tests, and auto-creates failure tickets.
2+
# Runs shellcheck, Python linting, and plugin tests.
33

44
name: CI
55

@@ -117,23 +117,3 @@ jobs:
117117
- name: Job timing report
118118
if: always()
119119
run: echo "test-evals completed at $(date -u +%Y-%m-%dT%H:%M:%SZ)"
120-
121-
# ── Failure ticket ──────────────────────────────────────────
122-
123-
create-failure-bug:
124-
name: Create Failure Bug Ticket
125-
runs-on: ubuntu-latest
126-
needs: [shellcheck, lint-python, test-hooks, test-scripts, test-evals]
127-
if: failure() && github.event_name == 'push'
128-
steps:
129-
- uses: actions/checkout@v4
130-
131-
- name: Install tk CLI
132-
run: pip install tk
133-
134-
- name: Create failure bug
135-
run: bash plugins/dso/scripts/ci-create-failure-bug.sh "${{ github.run_id }}"
136-
137-
- name: Job timing report
138-
if: always()
139-
run: echo "create-failure-bug completed at $(date -u +%Y-%m-%dT%H:%M:%SZ)"

.tickets/dso-6r3o.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
id: dso-6r3o
3+
status: closed
4+
deps: []
5+
links: []
6+
created: 2026-03-22T19:16:51Z
7+
type: story
8+
priority: 1
9+
assignee: Joe Oakhart
10+
parent: dso-uu13
11+
---
12+
# As a developer, the CI auto-ticket-creation pattern is fully removed
13+
14+
## Description
15+
16+
**What**: Remove the CI workflow job, scripts, test files, and example config related to automatic ticket creation on CI failure.
17+
**Why**: CI doesn't reliably have access to tk (plugin dependency), and failures are already caught by ci-status.sh --wait. The auto-created tickets are noise requiring a dedicated cleanup script.
18+
**Scope**:
19+
- IN: Delete ci-create-failure-bug.sh, bulk-delete-stale-tickets.sh, tests/scripts/test-bulk-delete-stale-tickets.sh; remove create-failure-bug job from .github/workflows/ci.yml and examples/ci.example.yml
20+
- OUT: Advisory hooks (check-validation-failures.sh, commit-failure-tracker.sh) — these inform but don't auto-create tickets
21+
22+
## Done Definitions
23+
24+
- When this story is complete, the create-failure-bug job no longer exists in .github/workflows/ci.yml
25+
← Satisfies: "The create-failure-bug job no longer exists in .github/workflows/ci.yml"
26+
- When this story is complete, ci-create-failure-bug.sh is deleted from the repository
27+
← Satisfies: "The ci-create-failure-bug.sh script is deleted"
28+
- When this story is complete, bulk-delete-stale-tickets.sh and its test file are deleted from the repository
29+
← Satisfies: "The bulk-delete-stale-tickets.sh cleanup script is deleted"
30+
- When this story is complete, the example CI workflow no longer includes the create-failure-bug job
31+
← Satisfies: "The example CI workflow (examples/ci.example.yml) no longer includes the create-failure-bug job"
32+
- When this story is complete, existing CI failure detection (ci-status.sh --wait) continues to work unchanged
33+
← Satisfies: "Existing CI failure detection (ci-status.sh --wait) continues to work unchanged"
34+
- Unit tests written and passing for all new or modified logic
35+
36+
## Considerations
37+
38+
- [Testing] Test file tests/scripts/test-bulk-delete-stale-tickets.sh must be deleted alongside the script
39+
- [Reliability] Confirmed no other scripts invoke ci-create-failure-bug.sh or bulk-delete-stale-tickets.sh
40+
41+
42+
## Notes
43+
44+
<!-- note-id: 6h84826z -->
45+
<!-- timestamp: 2026-03-22T20:08:32Z -->
46+
<!-- origin: agent -->
47+
<!-- sync: unsynced -->
48+
49+
CLOSE REASON: Fixed: deleted ci-create-failure-bug.sh, bulk-delete-stale-tickets.sh, test file; removed CI job from workflows

.tickets/dso-fqye.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
id: dso-fqye
3+
status: closed
4+
deps: [dso-6r3o]
5+
links: []
6+
created: 2026-03-22T19:17:01Z
7+
type: story
8+
priority: 2
9+
assignee: Joe Oakhart
10+
parent: dso-uu13
11+
---
12+
# Update project docs to reflect CI ticket removal
13+
14+
## Description
15+
16+
**What**: Update CLAUDE.md rule #3 to remove the reference to auto-created tracking issues, since the CI auto-creation pattern has been removed.
17+
**Why**: The rule currently states "Tracking issues are auto-created by commit-failure-tracker hook" — with CI auto-creation removed, this must be reworded to reflect that agents are responsible for creating tracking issues manually when needed.
18+
**Scope**:
19+
- IN: Update CLAUDE.md rule #3 in "Never Do These" section
20+
- OUT: No changes to advisory hooks or other documentation
21+
22+
## Done Definitions
23+
24+
- When this story is complete, CLAUDE.md rule #3 no longer references auto-creation of tracking issues
25+
← Satisfies: "CLAUDE.md rule #3 is updated to remove the auto-creation reference"
26+
27+
## Considerations
28+
29+
- [Maintainability] Ensure the updated rule still conveys the intent that failures should be tracked — just not auto-created by CI
30+
31+
32+
## Notes
33+
34+
<!-- note-id: 9vxh7g9z -->
35+
<!-- timestamp: 2026-03-22T19:17:10Z -->
36+
<!-- origin: agent -->
37+
<!-- sync: unsynced -->
38+
39+
Follow .claude/docs/DOCUMENTATION-GUIDE.md for documentation formatting, structure, and conventions.
40+
41+
<!-- note-id: kfkcl8n3 -->
42+
<!-- timestamp: 2026-03-22T20:08:33Z -->
43+
<!-- origin: agent -->
44+
<!-- sync: unsynced -->
45+
46+
CLOSE REASON: Fixed: updated CLAUDE.md rule #3 to remove auto-creation reference

.tickets/dso-ptzz.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
id: dso-ptzz
3+
status: open
4+
deps: []
5+
links: []
6+
created: 2026-03-22T20:01:07Z
7+
type: bug
8+
priority: 2
9+
assignee: Joe Oakhart
10+
parent: dso-uu13
11+
---
12+
# sprint-next-batch.sh treats tk dep blockers as file conflicts, preventing non-overlapping tasks from batching
13+
14+
15+
## Notes
16+
17+
<!-- note-id: s46n6vmg -->
18+
<!-- timestamp: 2026-03-22T20:01:16Z -->
19+
<!-- origin: agent -->
20+
<!-- sync: unsynced -->
21+
22+
## Description
23+
24+
When sprint-next-batch.sh plans a batch, tasks blocked by tk dep are excluded even when they have zero file overlap with the blocking task. In this sprint (dso-uu13), dso-6r3o (CI workflow/script deletions) and dso-fqye (CLAUDE.md update) touch completely different files but were split into separate batches because dso-fqye depends on dso-6r3o.
25+
26+
The script should distinguish between:
27+
- **File-level conflicts**: tasks that modify the same files (must be serialized)
28+
- **Logical ordering**: tasks with tk dep relationships but no file overlap (can be parallelized)
29+
30+
## Acceptance Criteria
31+
32+
- Tasks with tk dep blockers but zero file overlap are included in the same batch
33+
- Tasks with tk dep blockers AND file overlap remain serialized
34+
- Existing file-overlap detection continues to work

.tickets/dso-uu13.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: dso-uu13
3-
status: open
3+
status: closed
44
deps: []
55
links: []
66
created: 2026-03-17T18:34:27Z
@@ -13,3 +13,35 @@ jira_key: DIG-35
1313

1414
Because our scripts are in a plugin, CI does not have access to tk to create tickets. Remove any functionality intended to create a ticket as part of CI
1515

16+
17+
## Notes
18+
19+
<!-- note-id: 6jzf2jua -->
20+
<!-- timestamp: 2026-03-22T19:14:23Z -->
21+
<!-- origin: agent -->
22+
<!-- sync: unsynced -->
23+
24+
## Context
25+
When CI fails, `ci-create-failure-bug.sh` auto-creates bug tickets via the `create-failure-bug` workflow job. Because DSO is a plugin and CI doesn't reliably have access to `tk`, these tickets are noise — CI failures are already caught by the existing `ci-status.sh --wait` workflow step, which agents check after pushing. The noise was bad enough that a dedicated cleanup script (`bulk-delete-stale-tickets.sh`) was created to delete the auto-created duplicates.
26+
27+
## Success Criteria
28+
- The `create-failure-bug` job no longer exists in `.github/workflows/ci.yml`
29+
- The `ci-create-failure-bug.sh` script is deleted
30+
- The `bulk-delete-stale-tickets.sh` cleanup script is deleted
31+
- The example CI workflow (`examples/ci.example.yml`) no longer includes the `create-failure-bug` job
32+
- CLAUDE.md rule #3 ("Tracking issues are auto-created") is updated to remove the auto-creation reference
33+
- Existing CI failure detection (`ci-status.sh --wait`) continues to work unchanged
34+
- After the next CI failure post-merge, no auto-created bug tickets appear in `.tickets/` — verified by checking `git log` for commits from `ci-create-failure-bug.sh`
35+
36+
## Dependencies
37+
None
38+
39+
## Approach
40+
Clean removal of `ci-create-failure-bug.sh`, the CI workflow job that calls it, the example workflow job, the `bulk-delete-stale-tickets.sh` cleanup script, and the CLAUDE.md rule referencing auto-creation.
41+
42+
<!-- note-id: ne3xv8zh -->
43+
<!-- timestamp: 2026-03-22T20:08:45Z -->
44+
<!-- origin: agent -->
45+
<!-- sync: unsynced -->
46+
47+
CLOSE REASON: Epic complete: all tasks closed — CI ticket auto-creation pattern removed

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Priority: 0-4 (0=critical, 4=backlog). Never use "high"/"medium"/"low".
7272
### Never Do These
7373
1. **Never close tasks before CI passes** — fix if you broke it; create tracking issue if pre-existing.
7474
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.
75-
3. **Tracking issues are auto-created** by commit-failure-tracker hook. Create manually for failures validation won't catch. Duplicates OK; gaps not.
75+
3. **Create tracking issues** for ALL failures discovered, even "infrastructure" ones
7676
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.)
7777
5. **Never skip issue validation after creating issues or adding deps** — run `validate-issues.sh --quick --terse`.
7878
6. **Never create more than 5 sub-agents at a time** — batch into groups of 5.

examples/ci.example.yml

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,45 +1117,3 @@ jobs:
11171117
run: |
11181118
echo "### ShellCheck: $(( $(date +%s) - ${{ steps.start.outputs.time }} ))s" >> "$GITHUB_STEP_SUMMARY"
11191119
working-directory: .
1120-
1121-
create-failure-bug:
1122-
name: Track CI Failure
1123-
runs-on: ubuntu-latest
1124-
timeout-minutes: 5
1125-
needs: [fast-gate, mypy, persistence-check, test-unit-agents, test-unit-services, test-unit-api, test-unit-core, coverage-check, test-e2e, test-e2e-multiworker, test-integration-hermetic, security-scan, shellcheck]
1126-
if: ${{ failure() && github.event_name == 'push' }}
1127-
# Only create bugs for push events (not PRs) to avoid noise on draft/WIP branches.
1128-
# PRs are transient; push-to-main/feature failures represent real regressions.
1129-
permissions:
1130-
contents: write
1131-
actions: read
1132-
steps:
1133-
- uses: actions/checkout@v4
1134-
with:
1135-
ref: ${{ github.ref }}
1136-
# Fetch full history so the script can push back to the branch
1137-
fetch-depth: 0
1138-
1139-
- name: Configure git for CI commits
1140-
run: |
1141-
git config user.name "github-actions[bot]"
1142-
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
1143-
working-directory: .
1144-
1145-
- name: Install Tickets (tk) CLI
1146-
run: |
1147-
mkdir -p "$HOME/.local/bin"
1148-
cp scripts/tk "$HOME/.local/bin/tk"
1149-
chmod +x "$HOME/.local/bin/tk"
1150-
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
1151-
working-directory: .
1152-
1153-
- name: Create CI failure bug and push tickets
1154-
env:
1155-
GH_TOKEN: ${{ github.token }}
1156-
GITHUB_SHA: ${{ github.sha }}
1157-
GITHUB_REF_NAME: ${{ github.ref_name }}
1158-
GITHUB_SERVER_URL: ${{ github.server_url }}
1159-
GITHUB_REPOSITORY: ${{ github.repository }}
1160-
run: bash scripts/ci-create-failure-bug.sh "${{ github.run_id }}"
1161-
working-directory: .

plugins/dso/scripts/bulk-delete-stale-tickets.sh

Lines changed: 0 additions & 96 deletions
This file was deleted.

0 commit comments

Comments
 (0)