$npx -y skills add pssah4/digital-innovation-agents --skill dia-guideGuides users through the V-Model workflow: takes stock of the current project state, recommends the next phase skill, audits handoff entries for completeness, and runs the Closing Handoff after a successful security audit. The guide does not perform CRUD work on artifacts; every
| 1 | # V-Model Workflow Guide |
| 2 | |
| 3 | ## What this skill does (and does not do) |
| 4 | |
| 5 | `/dia-guide` is the read-only orientation layer of DIA. It: |
| 6 | |
| 7 | - Reads `BACKLOG.md`, the latest `HANDOFFS.md` entry, and git |
| 8 | state when the user invokes it |
| 9 | - Recommends the next phase skill in plain text |
| 10 | - Audits whether the last handoff carries the binding fields |
| 11 | (`triage:`, `triage_kind:`, `epic:`, `feature:`) |
| 12 | - Runs the Closing Handoff after a green `/security-audit` |
| 13 | - Owns two narrow CRUD moments at workflow boundaries that no single |
| 14 | phase skill covers: (a) the **post-`/reverse-engineering` item |
| 15 | promotion** (described below), and (b) the **item-start branch |
| 16 | creation** when the user enters at A/B/C from a fresh repo |
| 17 | |
| 18 | What the guide does NOT do: |
| 19 | |
| 20 | - It does not perform artifact triage. Triage lives in every phase |
| 21 | skill's MANDATORY Phase 0 block. See |
| 22 | `skills/project-conventions/references/graph-invariants.md`, |
| 23 | section "Artifact triage at entry point". |
| 24 | - It does not enforce the plan gate. The plan gate lives in |
| 25 | `/coding` Phase 3a as the "Plan Coverage Gate (binding, runs |
| 26 | before Status flips to Active)". `/coding` runs the gate; |
| 27 | the guide only reads the result. |
| 28 | - It does not run `/consistency-check` mode A at phase boundaries. |
| 29 | Each phase skill runs mode A in its own handoff ritual. Mode B |
| 30 | fires from the Closing Handoff, see below. |
| 31 | - It does not call other skills. It recommends; the user invokes. |
| 32 | |
| 33 | ## Item-start branch creation |
| 34 | |
| 35 | When the user picks entry-point A, B, or C in the hybrid entry-point |
| 36 | detection (see "Start: Determine Phase" below), the guide creates a |
| 37 | fresh feature branch from the configured source branch before the |
| 38 | phase skill takes over. The phase skill itself does not own this |
| 39 | because the branch must exist before the first artifact is written. |
| 40 | |
| 41 | Steps: |
| 42 | |
| 43 | 1. **Read `.dia/config.toml`.** Extract the `source_branch` |
| 44 | (default `develop`) and the `mode`. If the file is missing, fall |
| 45 | back to `develop` and treat the mode as `git-only`. |
| 46 | 2. **Slug input.** Ask the user (single `AskUserQuestion`, short |
| 47 | plain-text "Other" slot) for a short kebab-case slug describing |
| 48 | the item. The slug is provisional. It becomes the suffix of the |
| 49 | feature branch name. Example: `auto-save-on-input`. |
| 50 | 3. **Branch creation.** |
| 51 | ```bash |
| 52 | git fetch origin <source_branch> --quiet || true |
| 53 | git checkout <source_branch> |
| 54 | git pull --ff-only origin <source_branch> 2>/dev/null || true |
| 55 | git checkout -b feature/<slug> |
| 56 | ``` |
| 57 | If the branch already exists, switch to it and warn the user. Do |
| 58 | not overwrite work. |
| 59 | 4. **Mode-aware GitHub side-effect.** If `mode = "github-sync"` and |
| 60 | the user has an existing GitHub issue tracking this item, the |
| 61 | guide reminds the user to assign themselves on GitHub so that |
| 62 | `flow.py sync-status` can mirror the assignee into the BACKLOG |
| 63 | `Claim` column once the item gets a real ID. The guide does not |
| 64 | create an issue at this stage; the phase skill that first writes |
| 65 | a backlog row (typically `/business-analysis` or |
| 66 | `/requirements-engineering`) calls `flow.py create-issue` once |
| 67 | the ID is known. |
| 68 | 5. **Hand-off.** Print the branch name to the user, then recommend |
| 69 | the relevant phase skill: A -> `/business-analysis`, |
| 70 | B -> `/requirements-engineering`, C -> `/architecture`. The |
| 71 | phase skill takes over. |
| 72 | |
| 73 | Branch rename after RE: when `/requirements-engineering` finishes |
| 74 | and the EPIC ID is known, the user (or `/dia-guide` on a later |
| 75 | invocation) can run |
| 76 | ``` |
| 77 | python3 tools/github-integration/flow.py promote-to-epic --item EPIC-NN --rename-branch |
| 78 | ``` |
| 79 | to retitle the parent issue, create sub-issues, and rename the |
| 80 | branch from `feature/<slug>` to `feature/epic-NN-<slug>`. The |
| 81 | guide does not run this automatically; the user invokes it via |
| 82 | the RE handoff or directly. |
| 83 | |
| 84 | ## Post-reverse-engineering item promotion (the only CRUD moment) |
| 85 | |
| 86 | `/reverse-engineering` finishes with a backlog seed: 20+ items at |
| 87 | `Status: Backlog, Source: REV, Notes: anticipated` on a single |
| 88 | `feature/reverse-engineer-<repo-name>` branch. The Status column |
| 89 | us |