Skip to content

chore(workflow): migrate open work from STATUS.md to GitHub Issues#83

Merged
emeraldleaf merged 1 commit into
mainfrom
chore/migrate-tasks-to-github-issues
Jun 3, 2026
Merged

chore(workflow): migrate open work from STATUS.md to GitHub Issues#83
emeraldleaf merged 1 commit into
mainfrom
chore/migrate-tasks-to-github-issues

Conversation

@emeraldleaf
Copy link
Copy Markdown
Owner

@emeraldleaf emeraldleaf commented Jun 3, 2026

Summary

Moves open work tracking from STATUS.md "Open issues" into GitHub Issues. STATUS.md becomes a thin entry-point doc (where we are, how to run, what's source-of-truth); the issues board is the durable work tracker.

CLAUDE.md Continuous Rule Encoding surface #5 updates to match: deferred rule encodings now create an issue with `rule-encoding-deferred` label, not a STATUS.md bullet.

Why

This session showed how often "what's next?" came up — five+ times, each answered by re-running `gh pr list` and parsing the queue. A Project board + structured issues answer that with one glance. STATUS.md got dual-duty as narrative entry-point AND open-work list; the dual duty made it fragile (~211 lines, drift between updates).

What's in this PR

File Change
`.github/ISSUE_TEMPLATE/work-item.yml` new — Issue Form template (What / Why / Acceptance / Notes)
`.github/ISSUE_TEMPLATE/config.yml` new — disables blank issues, points at dev-loop.md
`docs/STATUS.md` Trimmed 211 → 86 lines. "Open issues / known gaps" section deleted (migrated to issues). Kept: Where we are, Build/test state, How to run, What's next (linking to board), conditional follow-ups (multi-replica + polyrepo — not issues by their nature), source-of-truth links.
`CLAUDE.md` Continuous Rule Encoding surface #5: STATUS.md → GitHub Issues
`docs/dev-loop.md` Six-surfaces table row #5: same update
`.github/AI_WORKFLOW.md` "Open issues stay in STATUS.md" → "Open work lives in GitHub Issues; STATUS.md is the entry-point doc"
`docs/ef-core.md` line 409 reference updated

What's NOT in this PR (already done out-of-band)

Project board

Not created in this PR — `gh project create` needs a scope refresh:

```bash
gh auth refresh -s project,read:project
gh project create --owner emeraldleaf --title "NextAurora Work"
```

Or 30-second web UI setup: Settings → Projects → New → Board. Recommended columns: Backlog, Next, In Progress, In Review, Done.

Run /check-rules locally to audit paraphrases against this diff

CLAUDE.md was edited (surface #5). The PostToolUse hook flagged 30 paraphrase candidates. The four that referenced "STATUS.md Open issues" were updated in this PR (AI_WORKFLOW.md, dev-loop.md, ef-core.md, STATUS.md itself); the other 26 paraphrase unrelated rules and aren't stale on this change.

Test plan

  • All 18 issues open and labeled correctly
  • Build clean (no code changes; docs-only PR)
  • STATUS.md renders cleanly + links work
  • Project board created (web UI or after gh scope refresh)
  • First new deferred encoding flows into a GitHub issue with `rule-encoding-deferred` instead of a STATUS.md bullet (validates the new convention end-to-end)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Restructured work-tracking documentation to direct users to GitHub Issues as the primary source for ongoing work.
    • Added a new "Work item" issue template to streamline work submissions with required fields for summary, rationale, acceptance criteria, and notes.
    • Disabled blank issue creation and added guidance links in issue template configuration.
    • Updated multiple documentation files to reflect GitHub Issues as the centralized work ledger.

…Project board

## Summary

Moves open work tracking from STATUS.md "Open issues" into GitHub Issues with
structured labels (type/*, area/*, priority/*, rule-encoding-deferred) and a
Project board for visual triage. STATUS.md becomes a thin entry-point doc.

The Continuous Rule Encoding loop in CLAUDE.md gets surface #5 updated from
"docs/STATUS.md Open issues" to "GitHub Issues" — the reflexive step for
deferred encodings now creates an issue with `rule-encoding-deferred` label.

## Changes

- `.github/ISSUE_TEMPLATE/work-item.yml` — new Issue Form template (What / Why
  / Acceptance / Notes structure) used by `gh issue create`
- `.github/ISSUE_TEMPLATE/config.yml` — disables blank issues, points at
  dev-loop.md
- `docs/STATUS.md` — trimmed 211 → 86 lines; removed the 13-bullet "Open issues
  / known gaps" section (all migrated to issues); kept "Where we are", "Build/
  test state", "How to run", "What's next" (now linking to the board),
  conditional follow-ups (multi-replica, polyrepo) that aren't issues by their
  nature, and source-of-truth links
- `CLAUDE.md` "Continuous Rule Encoding" surface #5 — STATUS.md → GitHub
  Issues with the labels callout
- `docs/dev-loop.md` six-surfaces table row #5 — same update
- `.github/AI_WORKFLOW.md` — "Open issues stay in STATUS.md" → "Open work lives
  in GitHub Issues; STATUS.md is the entry-point doc"
- `docs/ef-core.md` line 409 — STATUS.md "Open issues" reference → GitHub
  Issues with the area/infra label filter

## What's now in GitHub Issues (18 opened today)

Migrated from STATUS.md "Open issues" + this session's follow-ups + dev-loop
"Gaps" section:

- #65 [epic] Full-saga Hetzner+Dokploy deployment (priority/now)
- #66 Align dev-loop.md Promotion Signal table with CLAUDE.md (priority/now,
      rule-encoding-deferred)
- #67 Decide fate of AWS deploy workflow (needs-design)
- #68 Cross-service integration tests over real ASB wire (priority/next)
- #69 Order cancellation flow (ORD-08) (priority/next)
- #70 PaymentRecoveryJob: replay gateway with idempotency key (priority/next)
- #71 Batch Catalog gRPC: ValidateLines (priority/next)
- #72 [epic/blocked] Wolverine 5.x → 6.x migration
- #73 Performance baselines under sustained load
- #74 Production migration deploy job (gated)
- #75 Codecov coverage gate
- #76 AppHost smoke run scheduled job
- #77 Service-to-service auth (mTLS or per-service tokens) (needs-design)
- #78 DTO payload audit
- #79 EF migration FQN snapshot cleanup
- #80 Re-introduce .gitleaks.toml when scanner ≥ 8.25 ships (blocked)
- #81 GitHub Actions SHA pinning
- #82 Generalize PaymentRepository.ExecuteInTransactionAsync pattern

## Labels created

- `type/*` (bug, feature, refactor, docs, chore, security, perf, test, epic)
- `area/*` (catalog, order, payment, shipping, notification, infra, testing,
  ci, docs, claude, security)
- `priority/*` (now, next, later)
- Workflow: `blocked`, `needs-design`, `rule-encoding-deferred`
- Dependabot expected: `dependencies`, `nuget`, `github-actions`

## Project board

Not created in this PR (gh CLI needs `project` scope refresh). User creates in
the web UI: Settings → Projects → New → Board. Recommended columns: Backlog,
Next, In Progress, In Review, Done.

## Why this matters

This session showed how often "what's next?" came up — five+ times,
each answered by re-running `gh pr list` and parsing the queue. A Project
board + issues answer that with one glance. STATUS.md got dual-duty as
narrative entry-point AND open-work list; the dual duty made it fragile.

The code-side loop (CLAUDE.md → PR → CodeRabbit → encode) stays unchanged.
This PR adds the work-planning loop alongside it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 3, 2026

Review Change Stack

Walkthrough

This PR migrates work-item tracking from a centralized STATUS.md document to GitHub Issues with specific labels. The changes introduce issue template configuration, establish a structured work-item form, refactor STATUS.md into a concise entry-point, and update documentation references to point consistently to the new issue-tracking system.

Changes

Work Tracking Migration

Layer / File(s) Summary
GitHub issue template configuration and work-item form
.github/ISSUE_TEMPLATE/config.yml, .github/ISSUE_TEMPLATE/work-item.yml
Issue template config disables blank issues and adds a contact link to dev-loop documentation. New work-item.yml template defines a structured GitHub Issue Forms submission with four required textarea fields (summary, why, acceptance, notes) and example guidance text.
STATUS.md refactored as thin entry-point
docs/STATUS.md
STATUS.md condensed from extensive project narrative to a concise entry-point: includes current state summary, simplified build/test status, streamlined setup and smoke-test steps, manual verification checklist, a "What's next" section directing work to GitHub Issues with labeled queries, and an expanded "Source-of-truth links" table pointing to dev-loop, architecture, CQRS strategy, and deployment guides.
Documentation updates pointing to GitHub Issues
.github/AI_WORKFLOW.md, CLAUDE.md, docs/dev-loop.md, docs/ef-core.md
References across developer documentation updated to point to GitHub Issues with specific labels (rule-encoding-deferred, type/*, area/*) as the durable work tracker instead of STATUS.md's "Open issues" section; STATUS.md remains the entry-point documentation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • emeraldleaf/NextAurora#20: The retrieved PR introduces the docs/dev-loop.md document that this PR updates to redirect work tracking from STATUS.md to GitHub Issues.
  • emeraldleaf/NextAurora#54: Both PRs modify the continuous rule-encoding workflow in CLAUDE.md and docs/dev-loop.md, with this PR redirecting deferred work to GitHub Issues.
  • emeraldleaf/NextAurora#27: Both PRs edit the continuous rule-encoding workflow documentation in CLAUDE.md and docs/dev-loop.md to establish consistent work-tracking practices.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and clearly summarizes the main change: migrating open work tracking from docs/STATUS.md to GitHub Issues, which is the central objective reflected in all file changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/migrate-tasks-to-github-issues

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CLAUDE.md`:
- Line 185: Add the required follow-up notice to the CLAUDE.md change by
inserting the exact sentence "Run /check-rules locally to audit paraphrases
against this diff." as a flag on any edit that modifies canonical rules; ensure
the wording appears alongside the changed paragraph about GitHub issues (the
paragraph beginning "GitHub Issues — if the finding is deferred or partial") so
reviewers will see the mandatory instruction when CLAUDE.md is modified.

In `@docs/STATUS.md`:
- Line 5: Update the "Last updated:" timestamp in docs/STATUS.md from
"2026-06-02" to "2026-06-03" so the file’s header (the line containing "**Last
updated:** 2026-06-02 (migration: open work moved from this doc into GitHub
Issues; STATUS.md is now thin entry-point only)") reflects today's date; locate
the line containing the "**Last updated:**" text and replace the date portion
with "2026-06-03".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 651e5861-ec29-42f0-a8fc-fb93c81be720

📥 Commits

Reviewing files that changed from the base of the PR and between 3767aa7 and 3e75f86.

📒 Files selected for processing (7)
  • .github/AI_WORKFLOW.md
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/work-item.yml
  • CLAUDE.md
  • docs/STATUS.md
  • docs/dev-loop.md
  • docs/ef-core.md

Comment thread CLAUDE.md
3. **[`.claude/agents/architecture-reviewer.md`](.claude/agents/architecture-reviewer.md)** "Pattern checklist" — a scan rule the agent applies on every review touching the relevant file category. So the next architectural pass catches it before code lands.
4. **[`.claude/skills/`](.claude/skills/)** — if the pattern is non-trivial enough to warrant a procedure (multi-step reasoning, specialized vocabulary), it becomes a skill. Otherwise the path_instructions + CLAUDE.md rule is enough.
5. **[`docs/STATUS.md`](docs/STATUS.md) "Open issues"** — if the finding is deferred or partial.
5. **GitHub Issues** — if the finding is deferred or partial. Open an issue with `rule-encoding-deferred` (when code shipped but the encoding is still pending) or the relevant `type/*` + `area/*` labels. The issue is the durable record; STATUS.md no longer carries an "Open issues" list (it's now a thin entry-point doc pointing at the issues board).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Required follow-up for canonical rules change.

Run /check-rules locally to audit paraphrases against this diff.

As per coding guidelines, any CLAUDE.md change must be flagged with: "Run /check-rules locally to audit paraphrases against this diff."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CLAUDE.md` at line 185, Add the required follow-up notice to the CLAUDE.md
change by inserting the exact sentence "Run /check-rules locally to audit
paraphrases against this diff." as a flag on any edit that modifies canonical
rules; ensure the wording appears alongside the changed paragraph about GitHub
issues (the paragraph beginning "GitHub Issues — if the finding is deferred or
partial") so reviewers will see the mandatory instruction when CLAUDE.md is
modified.

Comment thread docs/STATUS.md
> **Read this first when picking up work.** Entry-point doc: where the project is, how to run it, what's source-of-truth where. Keep it short (~100 lines). **Open work lives in [GitHub Issues](https://github.com/emeraldleaf/NextAurora/issues)**, not here.

**Last updated:** 2026-05-26 (CatalogService Clean Architecture → VSA collapse; carve-out retired — all five services now share one shape)
**Last updated:** 2026-06-02 (migration: open work moved from this doc into GitHub Issues; STATUS.md is now thin entry-point only)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Update the STATUS timestamp to today.

Line 5 is stale for this diff; it should be 2026-06-03 if this file is being modified in this PR.

As per coding guidelines, docs/STATUS.md changes must update the “Last updated:” date to today.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/STATUS.md` at line 5, Update the "Last updated:" timestamp in
docs/STATUS.md from "2026-06-02" to "2026-06-03" so the file’s header (the line
containing "**Last updated:** 2026-06-02 (migration: open work moved from this
doc into GitHub Issues; STATUS.md is now thin entry-point only)") reflects
today's date; locate the line containing the "**Last updated:**" text and
replace the date portion with "2026-06-03".

@emeraldleaf emeraldleaf merged commit 8a0b310 into main Jun 3, 2026
7 checks passed
@emeraldleaf emeraldleaf deleted the chore/migrate-tasks-to-github-issues branch June 3, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant