arcane-cli 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +253 -0
- package/dist/assets/.arcane/agents/agent-policies-template.md +414 -0
- package/dist/assets/.arcane/governance/agent-approved-paths.md +60 -0
- package/dist/assets/.arcane/governance/agent-policies.md +414 -0
- package/dist/assets/.arcane/governance/agent-work-queue-model.md +61 -0
- package/dist/assets/.arcane/governance/authentication-strategy.md +220 -0
- package/dist/assets/.arcane/governance/cicd-standards.md +227 -0
- package/dist/assets/.arcane/governance/decision-documentation-standard.md +335 -0
- package/dist/assets/.arcane/governance/development-methodology.md +384 -0
- package/dist/assets/.arcane/governance/git-conventions.md +759 -0
- package/dist/assets/.arcane/governance/hardening-checklist.md +117 -0
- package/dist/assets/.arcane/governance/naming-conventions.md +142 -0
- package/dist/assets/.arcane/governance/new-business-setup.md +182 -0
- package/dist/assets/.arcane/governance/poc-management-pattern.md +190 -0
- package/dist/assets/.arcane/governance/portable-bootstrap.md +101 -0
- package/dist/assets/.arcane/governance/product-excellence-standards.md +211 -0
- package/dist/assets/.arcane/governance/rca-process-standard.md +157 -0
- package/dist/assets/.arcane/governance/spell-authoring-standards.md +129 -0
- package/dist/assets/.arcane/governance/testing-standards.md +158 -0
- package/dist/assets/.arcane/governance/threat-model.md +104 -0
- package/dist/assets/.arcane/governance/universal-agent-rules.md +108 -0
- package/dist/assets/.arcane/image-prompts/adelaide-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/alexander-image-prompt.md +138 -0
- package/dist/assets/.arcane/image-prompts/bess-image-prompt.md +139 -0
- package/dist/assets/.arcane/image-prompts/circe-image-prompt.md +143 -0
- package/dist/assets/.arcane/image-prompts/custodio-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/iris-image-prompt.md +139 -0
- package/dist/assets/.arcane/image-prompts/kellar-image-prompt.md +141 -0
- package/dist/assets/.arcane/image-prompts/lafayette-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/lince-image-prompt.md +142 -0
- package/dist/assets/.arcane/image-prompts/mercurio-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/merlin-image-prompt.md +139 -0
- package/dist/assets/.arcane/image-prompts/prospero-image-prompt.md +141 -0
- package/dist/assets/.arcane/templates/venture-template/overview.md +66 -0
- package/dist/assets/.claude/commands/spell-address-review.md +9 -0
- package/dist/assets/.claude/commands/spell-arcane-version.md +9 -0
- package/dist/assets/.claude/commands/spell-architect.md +9 -0
- package/dist/assets/.claude/commands/spell-bootstrap-business.md +9 -0
- package/dist/assets/.claude/commands/spell-brainstorm.md +9 -0
- package/dist/assets/.claude/commands/spell-bug.md +9 -0
- package/dist/assets/.claude/commands/spell-bump.md +9 -0
- package/dist/assets/.claude/commands/spell-check-drift.md +9 -0
- package/dist/assets/.claude/commands/spell-close-session.md +9 -0
- package/dist/assets/.claude/commands/spell-commit-work.md +9 -0
- package/dist/assets/.claude/commands/spell-create-pull-request.md +9 -0
- package/dist/assets/.claude/commands/spell-document.md +9 -0
- package/dist/assets/.claude/commands/spell-dotnet-expert.md +9 -0
- package/dist/assets/.claude/commands/spell-eas-ios-deploy.md +9 -0
- package/dist/assets/.claude/commands/spell-enchant.md +9 -0
- package/dist/assets/.claude/commands/spell-explain-concept.md +9 -0
- package/dist/assets/.claude/commands/spell-feedback.md +9 -0
- package/dist/assets/.claude/commands/spell-full-cycle.md +9 -0
- package/dist/assets/.claude/commands/spell-generate-bot-icons.md +9 -0
- package/dist/assets/.claude/commands/spell-implement.md +9 -0
- package/dist/assets/.claude/commands/spell-open-session.md +9 -0
- package/dist/assets/.claude/commands/spell-plan.md +9 -0
- package/dist/assets/.claude/commands/spell-present-arcane.md +9 -0
- package/dist/assets/.claude/commands/spell-product-review.md +9 -0
- package/dist/assets/.claude/commands/spell-review-batch.md +9 -0
- package/dist/assets/.claude/commands/spell-review.md +9 -0
- package/dist/assets/.claude/commands/spell-save-idea.md +9 -0
- package/dist/assets/.claude/commands/spell-scope.md +9 -0
- package/dist/assets/.claude/commands/spell-security-review.md +9 -0
- package/dist/assets/.claude/commands/spell-ship.md +9 -0
- package/dist/assets/.claude/commands/spell-status.md +9 -0
- package/dist/assets/.claude/commands/spell-suggest-feature.md +9 -0
- package/dist/assets/.claude/commands/spell-test.md +9 -0
- package/dist/assets/.claude/commands/spell-todo.md +9 -0
- package/dist/assets/.github/agents/adelaide.agent.md +44 -0
- package/dist/assets/.github/agents/alexander.agent.md +43 -0
- package/dist/assets/.github/agents/bess.agent.md +42 -0
- package/dist/assets/.github/agents/circe.agent.md +43 -0
- package/dist/assets/.github/agents/custodio.agent.md +44 -0
- package/dist/assets/.github/agents/iris.agent.md +43 -0
- package/dist/assets/.github/agents/kellar.agent.md +43 -0
- package/dist/assets/.github/agents/lafayette.agent.md +42 -0
- package/dist/assets/.github/agents/lince.agent.md +43 -0
- package/dist/assets/.github/agents/mercurio.agent.md +43 -0
- package/dist/assets/.github/agents/merlin.agent.md +44 -0
- package/dist/assets/.github/agents/prospero.agent.md +43 -0
- package/dist/assets/.github/instructions/agent-output.instructions.md +48 -0
- package/dist/assets/.github/prompts/spell-address-review.prompt.md +114 -0
- package/dist/assets/.github/prompts/spell-arcane-version.prompt.md +82 -0
- package/dist/assets/.github/prompts/spell-architect.prompt.md +116 -0
- package/dist/assets/.github/prompts/spell-bootstrap-business.prompt.md +73 -0
- package/dist/assets/.github/prompts/spell-brainstorm.prompt.md +124 -0
- package/dist/assets/.github/prompts/spell-bug.prompt.md +109 -0
- package/dist/assets/.github/prompts/spell-bump.prompt.md +73 -0
- package/dist/assets/.github/prompts/spell-check-drift.prompt.md +97 -0
- package/dist/assets/.github/prompts/spell-close-session.prompt.md +189 -0
- package/dist/assets/.github/prompts/spell-commit-work.prompt.md +211 -0
- package/dist/assets/.github/prompts/spell-create-pull-request.prompt.md +170 -0
- package/dist/assets/.github/prompts/spell-document.prompt.md +83 -0
- package/dist/assets/.github/prompts/spell-dotnet-expert.prompt.md +117 -0
- package/dist/assets/.github/prompts/spell-eas-ios-deploy.prompt.md +183 -0
- package/dist/assets/.github/prompts/spell-enchant.prompt.md +385 -0
- package/dist/assets/.github/prompts/spell-explain-concept.prompt.md +69 -0
- package/dist/assets/.github/prompts/spell-feedback.prompt.md +113 -0
- package/dist/assets/.github/prompts/spell-full-cycle.prompt.md +201 -0
- package/dist/assets/.github/prompts/spell-generate-bot-icons.prompt.md +84 -0
- package/dist/assets/.github/prompts/spell-implement.prompt.md +101 -0
- package/dist/assets/.github/prompts/spell-open-session.prompt.md +116 -0
- package/dist/assets/.github/prompts/spell-plan.prompt.md +145 -0
- package/dist/assets/.github/prompts/spell-present-arcane.prompt.md +188 -0
- package/dist/assets/.github/prompts/spell-product-review.prompt.md +97 -0
- package/dist/assets/.github/prompts/spell-review-batch.prompt.md +94 -0
- package/dist/assets/.github/prompts/spell-review.prompt.md +131 -0
- package/dist/assets/.github/prompts/spell-save-idea.prompt.md +83 -0
- package/dist/assets/.github/prompts/spell-scope.prompt.md +263 -0
- package/dist/assets/.github/prompts/spell-security-review.prompt.md +129 -0
- package/dist/assets/.github/prompts/spell-ship.prompt.md +104 -0
- package/dist/assets/.github/prompts/spell-status.prompt.md +85 -0
- package/dist/assets/.github/prompts/spell-suggest-feature.prompt.md +110 -0
- package/dist/assets/.github/prompts/spell-test.prompt.md +87 -0
- package/dist/assets/.github/prompts/spell-todo.prompt.md +126 -0
- package/dist/assets/DECISIONS.md +19 -0
- package/dist/assets/TODO.md +7 -0
- package/dist/assets/agents/architecture-lead.yaml +61 -0
- package/dist/assets/agents/collaborator.yaml +59 -0
- package/dist/assets/agents/devops.yaml +60 -0
- package/dist/assets/agents/frontend-dev.yaml +60 -0
- package/dist/assets/agents/fullstack-dev.yaml +59 -0
- package/dist/assets/agents/marketing-strategist.yaml +60 -0
- package/dist/assets/agents/mobile-dev.yaml +59 -0
- package/dist/assets/agents/operations-comms.yaml +58 -0
- package/dist/assets/agents/orchestrator.yaml +60 -0
- package/dist/assets/agents/qa-lead.yaml +60 -0
- package/dist/assets/agents/research-analyst.yaml +59 -0
- package/dist/assets/agents/security-ops.yaml +61 -0
- package/dist/assets/ai-context/system-prompt-context.md +32 -0
- package/dist/assets/journal/.gitkeep +0 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +2313 -0
- package/dist/index.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Bump Version
|
|
3
|
+
description: Determine the correct semver bump type for the current change and apply it to package.json
|
|
4
|
+
argument-hint: Optional context about the change (e.g., "new component", "bug fix", "breaking API change")
|
|
5
|
+
agent: agent
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
- This spell determines whether a version bump is required and applies the correct semver type.
|
|
11
|
+
- Use it whenever you've changed `src/assets/`, `registry.ts`, or `profiles.ts` in the arcane repo.
|
|
12
|
+
- It enforces the rule from CLAUDE.md: "Version bump required for any change to `src/assets/`."
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
Determine the correct semver bump and apply it.
|
|
17
|
+
|
|
18
|
+
## Step 1 — Check whether a bump is needed
|
|
19
|
+
|
|
20
|
+
Run the version check gate:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
npm run check:version-bump
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- If it **passes** → no bump needed. Stop here and report "No version bump required."
|
|
27
|
+
- If it **fails** → proceed to Step 2.
|
|
28
|
+
|
|
29
|
+
## Step 2 — Determine semver type
|
|
30
|
+
|
|
31
|
+
Inspect the changed files in `src/assets/`, `registry.ts`, and `profiles.ts`:
|
|
32
|
+
|
|
33
|
+
| Change type | Bump |
|
|
34
|
+
|---|---|
|
|
35
|
+
| New component added to registry (new file in `src/assets/`) | `minor` |
|
|
36
|
+
| Existing asset file updated (content change, no new component) | `patch` |
|
|
37
|
+
| Component removed from registry | `minor` |
|
|
38
|
+
| Breaking change to CLI API or registry schema | `major` |
|
|
39
|
+
| Bug fix in CLI source (`src/modules/`, `src/commands/`) | `patch` |
|
|
40
|
+
| New CLI command or flag | `minor` |
|
|
41
|
+
|
|
42
|
+
When in doubt: new distributable content = `minor`, content update = `patch`.
|
|
43
|
+
|
|
44
|
+
## Step 3 — Apply the bump
|
|
45
|
+
|
|
46
|
+
Run the appropriate command (do **not** use `--git-tag-version` — tagging happens at publish time):
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
npm version patch --no-git-tag-version
|
|
50
|
+
# or
|
|
51
|
+
npm version minor --no-git-tag-version
|
|
52
|
+
# or
|
|
53
|
+
npm version major --no-git-tag-version
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Step 4 — Verify and stage
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
node -e "const p = require('./package.json'); console.log(p.version)"
|
|
60
|
+
git add package.json package-lock.json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Step 5 — Commit
|
|
64
|
+
|
|
65
|
+
Use `spell-commit-work` to commit the version bump as a separate commit:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
chore(release): bump version to X.Y.Z
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Include in the commit body:
|
|
72
|
+
- What distributable change triggered the bump
|
|
73
|
+
- Which components were added/changed
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Check Doc Drift
|
|
3
|
+
description: Detect contradictions and stale statements across core Arcane docs and report severity-graded findings (report-only by default; opt-in --fix applies safe mechanical fixes).
|
|
4
|
+
argument-hint: Optional scope selector --scope all|journal|todos|decisions|git (default all); free-text hints also accepted. Add --fix to apply safe mechanical fixes.
|
|
5
|
+
agent: agent
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
- This prompt identifies documentation contradictions, stale dates, and inconsistencies across the repo.
|
|
11
|
+
- It cross-references core docs to find drift between ADRs, journals, configuration files, and operational guides.
|
|
12
|
+
- Use this periodically (weekly/monthly) or after major changes to maintain documentation accuracy.
|
|
13
|
+
- **Report-only by default** (non-destructive): output is severity-graded findings with exact fix recommendations. Pass `--fix` to also apply safe, mechanical, unambiguous fixes.
|
|
14
|
+
|
|
15
|
+
**Related spells:** `spell-open-session` consumes this as an early drift-check pre-step (feeds-into); this spell also runs standalone. Related to `spell-close-session`, which flags drift at session close.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Detect documentation drift in this repository.
|
|
20
|
+
|
|
21
|
+
Use these files first:
|
|
22
|
+
|
|
23
|
+
- [README.md](../../README.md)
|
|
24
|
+
- [project.md](../../project.md)
|
|
25
|
+
- [TODO.md](../../TODO.md)
|
|
26
|
+
- [DECISIONS.md](../../DECISIONS.md)
|
|
27
|
+
- [ai-context/system-prompt-context.md](../../ai-context/system-prompt-context.md)
|
|
28
|
+
- [agents/agent-policies.md](../../agents/agent-policies.md)
|
|
29
|
+
- Most recent journal file(s) in [journal/](../../journal/)
|
|
30
|
+
- Relevant business overviews under [ventures/](../../ventures/)
|
|
31
|
+
|
|
32
|
+
Scope selection (`--scope <value>`, default `all`):
|
|
33
|
+
|
|
34
|
+
- `all` — run every detector below (default).
|
|
35
|
+
- `journal` — Journal chronology only.
|
|
36
|
+
- `todos` — Done vs. carry-forward consistency only.
|
|
37
|
+
- `decisions` — Decision-ID existence only.
|
|
38
|
+
- `git` — Decision-ID existence plus the general contradiction/stale-date checks against tracked docs (git-tracked doc state); does not run journal-ordering or carry-forward detectors.
|
|
39
|
+
|
|
40
|
+
A free-text scope hint (e.g., "security docs", "business docs") is still accepted and narrows the file set; `--scope` selects which detector catalog runs. When both are given, `--scope` governs the detector set and the free-text hint narrows the files.
|
|
41
|
+
|
|
42
|
+
Concrete detectors to run (in addition to general contradiction/stale-date checks):
|
|
43
|
+
|
|
44
|
+
- **Journal chronology** — journal entries and their dates must be in sane order. Flag out-of-order entries, duplicate session numbers, and any future or otherwise contradictory dates.
|
|
45
|
+
- **Done vs. carry-forward consistency** — items marked done must not still appear as open or carry-forward items, and items listed as open/carry-forward must not also be marked done elsewhere.
|
|
46
|
+
- **Decision-ID existence** — decision IDs referenced in TODO, journal, or other docs must exist in `DECISIONS.md`, and the IDs in the decisions log must be sequential and unique (no gaps that imply a missing entry, no duplicates).
|
|
47
|
+
|
|
48
|
+
For each drift finding include:
|
|
49
|
+
|
|
50
|
+
- Severity (`Critical`, `High`, `Medium`, or `Low`)
|
|
51
|
+
- Severity rationale (one line: why this severity — e.g. work-integrity/duplicate-work risk → HIGH; confidence/correctness gap → MEDIUM; cosmetic → LOW)
|
|
52
|
+
- Drift statement
|
|
53
|
+
- Canonical source file (cite `file:line` — or the nearest locator such as a heading or section — wherever a specific location applies)
|
|
54
|
+
- Affected file (cite `file:line` — or the nearest locator — wherever a specific location applies)
|
|
55
|
+
- Exact recommended fix
|
|
56
|
+
|
|
57
|
+
Every finding that points to a specific location MUST be pinpointable: cite `file:line` (or a line range, e.g. `TODO.md:42-45`). If no precise line exists, cite the nearest available locator (heading, section, or list item) instead of omitting it.
|
|
58
|
+
|
|
59
|
+
Behavior:
|
|
60
|
+
|
|
61
|
+
- **Default mode is report-only and non-destructive — do not edit any files.** Only detect, grade, and report drift with recommended fixes.
|
|
62
|
+
- **Only when invoked with `--fix`**: apply fixes that are mechanical and unambiguous, then report each edit applied. Still never apply ambiguous fixes — list those under Needs Confirmation instead.
|
|
63
|
+
- If drift is ambiguous, do not edit (in either mode); ask a targeted clarification question.
|
|
64
|
+
|
|
65
|
+
Output format:
|
|
66
|
+
|
|
67
|
+
## Drift Report
|
|
68
|
+
|
|
69
|
+
- **Scope:** the `--scope` value (`all`/`journal`/`todos`/`decisions`/`git`), any free-text hint, and mode (`report-only` or `--fix`).
|
|
70
|
+
- **Date:** ISO date of this run.
|
|
71
|
+
- **Findings:** total count, broken down per severity.
|
|
72
|
+
|
|
73
|
+
## Drift Findings
|
|
74
|
+
|
|
75
|
+
- One line per finding with `file:line` references (or nearest locator) and its severity rationale.
|
|
76
|
+
|
|
77
|
+
## Fixes Applied
|
|
78
|
+
|
|
79
|
+
- List edits applied (only possible in `--fix` mode), or `None`.
|
|
80
|
+
|
|
81
|
+
## Needs Confirmation
|
|
82
|
+
|
|
83
|
+
- Open questions that block safe edits, or `None`.
|
|
84
|
+
|
|
85
|
+
## Suggested Next Updates
|
|
86
|
+
|
|
87
|
+
- Short, prioritized follow-up edits.
|
|
88
|
+
|
|
89
|
+
## Go / No-Go
|
|
90
|
+
|
|
91
|
+
- A final roll-up verdict: **GO** if the workspace is clean enough to proceed (no unresolved Critical/High findings), or **NO-GO** if drift must be fixed first. State the single most important blocker and what must happen before proceeding.
|
|
92
|
+
|
|
93
|
+
Rules:
|
|
94
|
+
|
|
95
|
+
- Prefer ADR decisions and latest journal facts when conflicts exist.
|
|
96
|
+
- Do not rewrite historical journal content.
|
|
97
|
+
- Keep changes minimal and traceable.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Close Session
|
|
3
|
+
description: End a work session by logging outcomes in today's journal and pruning completed TODO items with verifiable evidence.
|
|
4
|
+
argument-hint: Optional session focus (e.g., a config change, a fix, infrastructure setup)
|
|
5
|
+
agent: agent
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
- This prompt formally closes a session by capturing work done, decisions made, and lessons learned in the journal.
|
|
11
|
+
- It updates TODO.md, DECISIONS.md, and ai-context/system-prompt-context.md to reflect current state.
|
|
12
|
+
- Use this at the end of every significant work session to preserve continuity and maintain documentation hygiene.
|
|
13
|
+
- The structured workflow ensures nothing is lost between sessions and handoff state is clean.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
Close the current Arcane session and leave docs in a clean handoff state.
|
|
18
|
+
|
|
19
|
+
Use these files first:
|
|
20
|
+
|
|
21
|
+
- [TODO.md](../../TODO.md)
|
|
22
|
+
- [DECISIONS.md](../../DECISIONS.md)
|
|
23
|
+
- [ai-context/system-prompt-context.md](../../ai-context/system-prompt-context.md)
|
|
24
|
+
- Most recent journal file(s) in [journal/](../../journal/)
|
|
25
|
+
- Any files changed during this session
|
|
26
|
+
|
|
27
|
+
Workflow:
|
|
28
|
+
|
|
29
|
+
1. **Reconstruct the full session** from conversation context, terminal history, and changed files. Identify:
|
|
30
|
+
- Actions completed (config changes, installs, fixes).
|
|
31
|
+
- Decisions made (even implicit ones like naming choices, tool preferences, or workflow patterns).
|
|
32
|
+
- Problems encountered and how they were resolved (troubleshooting).
|
|
33
|
+
- Lessons learned (anything that cost time, surprised the user, or should prevent future mistakes).
|
|
34
|
+
- **Capture tie-in tip:** If this session produced durable analysis worth formalizing (a design, an investigation, a reusable explanation), suggest running `spell-document` before closing so it lands in the right doc. For quick ideas worth keeping but not yet actionable, suggest `spell-save-idea`.
|
|
35
|
+
|
|
36
|
+
2. **Update today's journal file** at `journal/YYYY-MM-DD-topic-slug.md`.
|
|
37
|
+
- If it exists and already has a session section from this chat, **update that section in place** (do not create a duplicate).
|
|
38
|
+
- If it exists but has no section for this session, **append** a new `## Session: <title>` section.
|
|
39
|
+
- If it does not exist, **create** it using the existing journal frontmatter style.
|
|
40
|
+
- Journal entries must include:
|
|
41
|
+
- `### Prompt Context` — original prompt text or a faithful paraphrase of the multi-turn request when the session began from a substantive user ask. Include follow-up scope inputs if they materially changed the direction of the work.
|
|
42
|
+
- `### What Got Done` — numbered list of concrete outcomes with file/ADR references.
|
|
43
|
+
- `### Decisions Made` — table of ADR number, decision, and rationale. If no decisions were made, omit this section.
|
|
44
|
+
- `### Lessons Learned` — one heading per lesson with enough context to prevent the mistake again. Use narrative, not bullet fragments.
|
|
45
|
+
- `### Open Items Carried Forward` — items that remain undone from this session.
|
|
46
|
+
|
|
47
|
+
3. **Update [DECISIONS.md](../../DECISIONS.md).**
|
|
48
|
+
- Add ADRs for any decisions made during the session (naming choices, tool preferences, workflow standards, security policies, etc.).
|
|
49
|
+
- Use the next sequential ADR number.
|
|
50
|
+
- Follow the existing format: Date, Status, Context, Decision, Reasoning, Rejected alternatives.
|
|
51
|
+
|
|
52
|
+
4. **Update [TODO.md](../../TODO.md).**
|
|
53
|
+
- Mark verifiably completed items as done with date.
|
|
54
|
+
- Keep unresolved items open.
|
|
55
|
+
- Remove completed checklist items only when completion is documented in the correct source-of-truth file.
|
|
56
|
+
|
|
57
|
+
5. **Update [ai-context/system-prompt-context.md](../../ai-context/system-prompt-context.md).**
|
|
58
|
+
- If priorities, environment state, or agent rules changed during the session, update the file to reflect current reality.
|
|
59
|
+
- If no changes are needed, skip this step.
|
|
60
|
+
|
|
61
|
+
5b. **Write the Next Session Handoff block.**
|
|
62
|
+
|
|
63
|
+
In `ai-context/system-prompt-context.md`, replace the existing `## Next Session Handoff` section (or append it if the section is absent) with a freshly generated block. Populate every field from conversation context and current git state:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Next Session Handoff
|
|
67
|
+
|
|
68
|
+
> Auto-generated by spell-close-session. Consumed by spell-open-session. Do not edit manually.
|
|
69
|
+
> Generated: YYYY-MM-DD
|
|
70
|
+
|
|
71
|
+
- **Active task:** One-line description of the task that was in progress when this session closed.
|
|
72
|
+
- **Last completed step:** The final concrete action taken — include file path or command text.
|
|
73
|
+
- **Next concrete action:** The exact first thing to do at next session start. Be specific: file, command, or decision. Never write "continue work."
|
|
74
|
+
- **Active files:** Files with uncommitted changes or the focus of the last edit (comma-separated).
|
|
75
|
+
- **Branch:** Output of `git branch --show-current`.
|
|
76
|
+
- **Blockers:** Known unresolved blockers or dependencies. Write "None" if clear.
|
|
77
|
+
- **Notes:** Anything time-sensitive, fragile, or contextual that would be lost if not stated explicitly.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Rules:
|
|
81
|
+
|
|
82
|
+
- Do not omit any field. Write "N/A" if not applicable.
|
|
83
|
+
- The block header must include the generation date.
|
|
84
|
+
- This section is ephemeral — it will be overwritten by the next close-session and consumed by the next open-session.
|
|
85
|
+
|
|
86
|
+
6. **Update troubleshooting sections** in affected operational docs.
|
|
87
|
+
- If problems were encountered and resolved during the session, add troubleshooting entries to the relevant runbook (e.g., `agents/installation.md`, `security/hardening-checklist.md`).
|
|
88
|
+
- Use the standard format: **Symptom**, **Cause**, **Fix**, **Verify**, **Prevention**.
|
|
89
|
+
- If screenshots were provided during the session, reference them in troubleshooting or journal entries.
|
|
90
|
+
|
|
91
|
+
7. **Process screenshots** (if provided during the session).
|
|
92
|
+
- Screenshots should already be saved to `assets/screenshots/YYYY-MM-DD/` — agents must save them immediately when the user pastes them (see global screenshot rule in `copilot-instructions.md`).
|
|
93
|
+
- At close-session time, review all screenshots saved during the session.
|
|
94
|
+
- Keep only screenshots that provide durable evidence for journal/runbook documentation.
|
|
95
|
+
- Delete duplicates, low-signal images, and any screenshot containing sensitive data (secrets, tokens, PII).
|
|
96
|
+
- Ensure every kept screenshot is referenced in at least one doc (journal entry or troubleshooting section).
|
|
97
|
+
- For journal files under `journal/`, reference via: ``.
|
|
98
|
+
- Reference in troubleshooting docs with context captions.
|
|
99
|
+
|
|
100
|
+
8. **Flag documentation drift** discovered while closing the session — stale dates, outdated priorities, contradictions between docs.
|
|
101
|
+
|
|
102
|
+
9. **Stage and commit session-close docs.**
|
|
103
|
+
|
|
104
|
+
a. **Branch check — create a topic branch before any staging:**
|
|
105
|
+
Run `git branch --show-current`. If you are on `main`, create a topic branch **now** before any `git add`:
|
|
106
|
+
|
|
107
|
+
```powershell
|
|
108
|
+
git checkout -b docs/session-close-YYYY-MM-DD
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Never commit directly to `main` — the branch policy rejects direct pushes. If a session branch already exists (created by `spell-open-session`), stay on it.
|
|
112
|
+
|
|
113
|
+
b. **Stage and commit immediately** — no approval wait (consistent with `spell-commit-work`):
|
|
114
|
+
- Run `git add -A && git diff --stat --cached` to show what changed.
|
|
115
|
+
- Auto-generate a conventional commit message summarizing the session closure (e.g., `docs(journal): close session — <topic>`).
|
|
116
|
+
- Run `git commit` immediately once the message is determined. Do not pause for confirmation.
|
|
117
|
+
|
|
118
|
+
c. **Push and open a PR** — follow the full ADO PR lifecycle from `spell-commit-work` step 9:
|
|
119
|
+
`az repos pr create` → `Invoke-RestMethod` approval → `az repos pr update --status completed` → branch delete.
|
|
120
|
+
See [governance/git-conventions.md](../../governance/git-conventions.md) ADO PR Lifecycle section.
|
|
121
|
+
|
|
122
|
+
10. **Return to main after the PR merges:**
|
|
123
|
+
- Run `git checkout main && git pull origin main`. Do not end the session on a topic branch.
|
|
124
|
+
- Delete the local topic branch: `git branch -d <branch>`.
|
|
125
|
+
- Verify `git log --oneline -3` shows the merge commit at HEAD.
|
|
126
|
+
- If stale local branches exist (merged or older than 7 days), list them and suggest cleanup.
|
|
127
|
+
- See [governance/git-conventions.md](../../governance/git-conventions.md) Post-Merge Cleanup section.
|
|
128
|
+
|
|
129
|
+
11. **Return a concise closure report.**
|
|
130
|
+
|
|
131
|
+
Output format:
|
|
132
|
+
|
|
133
|
+
## Session Closure
|
|
134
|
+
|
|
135
|
+
- Summary of what was completed.
|
|
136
|
+
|
|
137
|
+
## Journal Updates
|
|
138
|
+
|
|
139
|
+
- Exact file updates made.
|
|
140
|
+
|
|
141
|
+
## Decision Updates
|
|
142
|
+
|
|
143
|
+
- ADRs added or note that none were needed.
|
|
144
|
+
|
|
145
|
+
## TODO Updates
|
|
146
|
+
|
|
147
|
+
- Exact checklist changes made.
|
|
148
|
+
|
|
149
|
+
## Drift and Fixes
|
|
150
|
+
|
|
151
|
+
- Documentation drift found and corrected, or "None."
|
|
152
|
+
|
|
153
|
+
## Screenshots
|
|
154
|
+
|
|
155
|
+
- Screenshots saved to `assets/screenshots/YYYY-MM-DD/` with references added to journal/docs, or "None provided."
|
|
156
|
+
|
|
157
|
+
## PR Readiness
|
|
158
|
+
|
|
159
|
+
Enumerate the current end state and the prescribed next action. Use this table to classify where the session landed (added clarity on top of the ADO PR lifecycle steps above — not a replacement for them):
|
|
160
|
+
|
|
161
|
+
| End state | Next action |
|
|
162
|
+
| --- | --- |
|
|
163
|
+
| Open PR exists | Docs/changes reach `main` when it merges — show the PR URL. |
|
|
164
|
+
| No PR + docs-only on a branch | Run `spell-create-pull-request --docs-only`. |
|
|
165
|
+
| No PR + mixed code+docs on a branch | Run `spell-create-pull-request` once the feature is complete. |
|
|
166
|
+
| Docs-only commit on `main` | Create a `chore/docs` branch, then run `spell-create-pull-request --docs-only`. |
|
|
167
|
+
| Nothing ahead of `origin/main` | Branch is fully merged — clean up local/remote branches. |
|
|
168
|
+
|
|
169
|
+
## Carry Forward
|
|
170
|
+
|
|
171
|
+
- 3 to 5 concrete next actions.
|
|
172
|
+
|
|
173
|
+
## What's Next?
|
|
174
|
+
|
|
175
|
+
Route the user to the right next spell based on the end state:
|
|
176
|
+
|
|
177
|
+
- **Docs-only commit on `main`** — create a docs branch, then run `spell-create-pull-request --docs-only`.
|
|
178
|
+
- **On a feature branch, ready for review** — run `spell-create-pull-request`.
|
|
179
|
+
- **On a feature branch, still in progress** — next session, run `spell-open-session` to resume.
|
|
180
|
+
- **PR already open** — run `spell-address-review` after reviewers comment.
|
|
181
|
+
|
|
182
|
+
Rules:
|
|
183
|
+
|
|
184
|
+
- Do not invent completions — only mark items done if verifiable from context.
|
|
185
|
+
- Keep frontmatter date values in `YYYY-MM-DD`.
|
|
186
|
+
- Preserve existing checklist and journal style.
|
|
187
|
+
- Keep edits minimal and factual.
|
|
188
|
+
- Never include secrets, API keys, or tokens in any document.
|
|
189
|
+
- If a journal entry for this session already exists (same date, same topic), update it rather than creating a duplicate.
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Commit Work
|
|
3
|
+
description: Generate Conventional Commits message with agent attribution and commit current work during an active session
|
|
4
|
+
argument-hint: Optional focus (e.g., security, prompts, agents, infrastructure)
|
|
5
|
+
agent: agent
|
|
6
|
+
last_updated: 2026-07-05
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
- This prompt commits work-in-progress during an active session before moving to the next task.
|
|
12
|
+
- It generates Conventional Commits format messages with proper type, scope, and agent attribution trailers.
|
|
13
|
+
- Use this when you've completed a discrete chunk of work and want to checkpoint before continuing.
|
|
14
|
+
- Enables clean commits without waiting for session-close (which handles journal/session docs separately).
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
Commit the current work in progress using Conventional Commits format.
|
|
19
|
+
|
|
20
|
+
Use these files first:
|
|
21
|
+
|
|
22
|
+
- [governance/git-conventions.md](../../governance/git-conventions.md) — Conventional Commits reference and agent attribution model
|
|
23
|
+
- [DECISIONS.md](../../DECISIONS.md) — for ADR context if relevant
|
|
24
|
+
|
|
25
|
+
Workflow:
|
|
26
|
+
|
|
27
|
+
1. **Check git status and guard the branch** — run `git status` to see what changed, and confirm the current branch.
|
|
28
|
+
- **Protected-branch guard:** if the current branch is `main` or `master`, **STOP — do not stage or commit directly.** Tell the user that committing straight to the integration branch is not allowed, and instruct them to create a topic branch first (e.g., `sessions/YYYY-MM-DD-<slug>` per the session model). Once on a valid topic branch, continue the workflow normally (commit immediately as usual).
|
|
29
|
+
|
|
30
|
+
2. **Run tests and verify coverage** _(skip only if zero source files changed — e.g., pure docs/config commit)_:
|
|
31
|
+
- Detect the project stack from the root of the changed repo:
|
|
32
|
+
- `package.json` present → `npm run test:coverage` (or `npm test` if no `test:coverage` script exists)
|
|
33
|
+
- `*.csproj` / `*.sln` present → `dotnet test --collect:"Code Coverage"`
|
|
34
|
+
- `pubspec.yaml` present → `flutter test --coverage`
|
|
35
|
+
- **HALT if tests fail or coverage thresholds are not met.** Do not proceed to commit. Report the exact failure output and instruct the operator to fix it first (run the failing tests, add missing coverage, or document an intentional threshold exception with a code comment and a note in the commit body).
|
|
36
|
+
- If coverage passes, record the coverage summary for use in the commit body or PR description.
|
|
37
|
+
- **Never commit code that fails CI locally.** The pipeline is not the first gate — this step is.
|
|
38
|
+
|
|
39
|
+
- **Format before committing** _(stack-aware; runs alongside the test gate above)_:
|
|
40
|
+
- Detect the configured formatter from the project's own config — do not assume one. Look for the toolchain's standard markers, for example:
|
|
41
|
+
- JS/TS: `.prettierrc*` / `prettier` in `package.json` → `npx prettier --write .`
|
|
42
|
+
- .NET: `*.csproj` / `*.sln` (optionally an `.editorconfig`) → `dotnet format`
|
|
43
|
+
- Python: `pyproject.toml` / `setup.cfg` declaring Black or Ruff → `black .` or `ruff format .`
|
|
44
|
+
- Go: any `*.go` files → `gofmt -w .` (or `go fmt ./...`)
|
|
45
|
+
- Run the detected formatter, then `git add` the resulting changes so they are part of this commit.
|
|
46
|
+
- **If no formatter is configured, skip this step gracefully** — do not install one and do not block the commit.
|
|
47
|
+
|
|
48
|
+
3. **Analyze changes** — categorize the work:
|
|
49
|
+
- What was the intent? (new feature, bug fix, docs, refactor, etc.)
|
|
50
|
+
- What scope/area was affected? (prompts, agents, security, infrastructure, journal, etc.)
|
|
51
|
+
- Is this part of a larger initiative or a standalone change?
|
|
52
|
+
- **Commit-splitting heuristic:** if the staged changes span clearly unrelated concerns (e.g., a feature change + an unrelated refactor + a dependency bump), recommend splitting them into multiple focused commits, each with its own message, rather than a single mixed commit. A single commit is fine when the changes serve one purpose. When splitting, stage and commit each concern separately.
|
|
53
|
+
- **Wiki-link check:** For any new `.md` files being committed, verify each has at least one outbound `[[...]]` wiki-link connecting it to the knowledge graph. Orphaned docs (no outbound links) break Obsidian's graph view. If missing, add a `Related:` or `See also:` line before committing. See the CLAUDE.md wiki-link conventions for the correct format.
|
|
54
|
+
|
|
55
|
+
4. **Determine authorship** — who produced this content? See [governance/git-conventions.md](../../governance/git-conventions.md) Agent Attribution Model section and ADR-028.
|
|
56
|
+
- **Human wrote it:** no `--author` override needed (uses global Git config)
|
|
57
|
+
- **AI agent/tool produced it:** use `--author` with the agent's registered identity:
|
|
58
|
+
- Roster agent: `--author="{AGENT_NAME} <{AGENT_EMAIL}>"` — resolve `{AGENT_NAME}` / `{AGENT_EMAIL}` from the active agent config (see [[agent-policies]] / [[naming-conventions]]); ask if unset.
|
|
59
|
+
- Generic CLI/IDE tool: `--author="{TOOL_NAME} <{TOOL_NAME_LOWER}@{OPERATOR_DOMAIN}>"` — resolve `{TOOL_NAME}` from the channel in use and `{OPERATOR_DOMAIN}` from `.arcane.json`; ask if unset.
|
|
60
|
+
- When in doubt, ask the user who produced the content.
|
|
61
|
+
|
|
62
|
+
5. **Determine commit type** using Conventional Commits standard:
|
|
63
|
+
- `feat` — new feature or capability
|
|
64
|
+
- `fix` — bug fix
|
|
65
|
+
- `docs` — documentation only changes
|
|
66
|
+
- `refactor` — code/structure changes without behavior change
|
|
67
|
+
- `chore` — maintenance, deps, tooling, cleanup
|
|
68
|
+
- `test` — adding or fixing tests
|
|
69
|
+
- `perf` — performance improvements
|
|
70
|
+
- `ci` — CI/CD pipeline changes
|
|
71
|
+
|
|
72
|
+
6. **Determine scope** — what part of the repo changed:
|
|
73
|
+
- `prompts` — .github/prompts/ files
|
|
74
|
+
- `agents` — agents/ directory or config
|
|
75
|
+
- `security` — security/ directory, hardening, threat model
|
|
76
|
+
- `infrastructure` — infrastructure/ directory, hardware, OS setup
|
|
77
|
+
- `decisions` — DECISIONS.md updates
|
|
78
|
+
- `journal` — journal/ entries
|
|
79
|
+
- `business` — ventures/ directory
|
|
80
|
+
- `playbooks` — playbooks/ directory
|
|
81
|
+
- `governance` — governance/ directory
|
|
82
|
+
- Multiple scopes? Pick the primary one or use a broader scope like `docs` or `repo`.
|
|
83
|
+
|
|
84
|
+
7. **Generate commit message with trailers** (ADR-029). For agent-authored commits, include required trailers. Format:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
type(scope): short description (72 chars max)
|
|
88
|
+
|
|
89
|
+
[Optional body with details if needed:
|
|
90
|
+
- Bullet list of key changes
|
|
91
|
+
- References to ADRs or files
|
|
92
|
+
- Context for why]
|
|
93
|
+
|
|
94
|
+
Agent: [lowercase-persona or tool name]
|
|
95
|
+
Model: [model identifier, e.g., claude-opus-4-20250918]
|
|
96
|
+
Provider: [anthropic or openai]
|
|
97
|
+
Role: [agent role slug, if applicable]
|
|
98
|
+
Task-Type: [docs, code, review, marketing, infra]
|
|
99
|
+
Channel: [vscode, cli, chat]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Rules:**
|
|
103
|
+
- Short description: imperative mood ("add", "fix", "update"), lowercase, no period
|
|
104
|
+
- Keep first line under 72 characters for git log readability
|
|
105
|
+
- Body is optional but useful for complex changes
|
|
106
|
+
- Reference ADRs if applicable (e.g., "Implements ADR-028")
|
|
107
|
+
- Trailers go after a blank line following the body (standard Git footer position)
|
|
108
|
+
- Required trailers for agent commits: `Agent`, `Model`, `Provider`
|
|
109
|
+
- Human-authored commits: trailers are optional
|
|
110
|
+
|
|
111
|
+
8. **Execute commit immediately** once message and attribution are determined:
|
|
112
|
+
- Run `git add -A` (or selective `git add` if user specifies files)
|
|
113
|
+
- Run `git commit --author="..." --trailer="..." -m "message"` with all flags
|
|
114
|
+
- Confirm success and show the resulting commit hash
|
|
115
|
+
|
|
116
|
+
9. **Push branch and run platform-specific PR flow:**
|
|
117
|
+
|
|
118
|
+
a. Run `git push origin <branch>`.
|
|
119
|
+
|
|
120
|
+
b. **🛑 Mandatory pre-PR rebase (governance guard, applies to every path below).** Before invoking any PR-creation command — whether via `spell-create-pull-request`, raw `gh pr create`, raw `az repos pr create`, or an MCP `create_pull_request` tool — you MUST:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git fetch origin
|
|
124
|
+
git rebase origin/<target-branch> # default: main
|
|
125
|
+
# resolve conflicts locally; never open a PR on a branch that will conflict with target
|
|
126
|
+
git push --force-with-lease # only if the branch already existed on origin
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
This is not optional. Skipping the rebase (for example by shelling out to `az repos pr create` directly and hoping reviewers will merge over the conflict) is a governance violation. See `.arcane/governance/git-conventions.md` → **🛑 Agent-mandatory pre-PR guard**. If a rebase produces conflicts you cannot confidently resolve, **STOP** and hand off to the human — do not open the PR.
|
|
130
|
+
|
|
131
|
+
Prefer delegating to `spell-create-pull-request`, which encodes this check as its Step 0.6. The steps below are the raw-CLI fallback and still require the rebase above to have already been performed.
|
|
132
|
+
|
|
133
|
+
c. Detect remote platform from `git remote get-url origin`:
|
|
134
|
+
- `github.com` → GitHub flow
|
|
135
|
+
- `dev.azure.com` / `visualstudio.com` → Azure DevOps flow
|
|
136
|
+
|
|
137
|
+
d. **GitHub flow (when remote is GitHub):**
|
|
138
|
+
- Create PR with `gh pr create --title "<Conventional Commits title>" --body-file <pr-body-file.md>`.
|
|
139
|
+
- Use `--body-file` (not inline `--body`) to preserve multi-line markdown reliably.
|
|
140
|
+
- Assign reviewer by default (operator/reviewer identity) if available.
|
|
141
|
+
- Self-approve only when platform/policy allows. If blocked by policy, report and continue with human approval required.
|
|
142
|
+
- Complete using **merge commit (no-fast-forward)** or **rebase+fast-forward** only. Do not use squash.
|
|
143
|
+
|
|
144
|
+
e. **Azure DevOps flow (when remote is ADO):**
|
|
145
|
+
- Check if an active PR already exists for the source branch:
|
|
146
|
+
- `az repos pr list --source-branch <branch> --status active --output json`
|
|
147
|
+
- If one exists, reuse it; otherwise create via `az repos pr create`.
|
|
148
|
+
- For multi-line markdown descriptions:
|
|
149
|
+
- Bash: `--description "$(cat <pr-body-file.md>)"`
|
|
150
|
+
- PowerShell: `--description (Get-Content -Raw .\<pr-body-file.md>)`
|
|
151
|
+
- Assign reviewer by default to the operator/reviewer identity (for example from `git config user.email`), idempotently (skip if already assigned).
|
|
152
|
+
- Approve via CLI first: `az repos pr set-vote --id <PR_ID> --vote approve`.
|
|
153
|
+
- If self-approval is blocked by policy, report that a second human approval is required and continue without forcing approval.
|
|
154
|
+
- Complete idempotently with source-branch deletion enabled and squash disabled: `az repos pr update --id <PR_ID> --status completed --delete-source-branch true --squash false`.
|
|
155
|
+
- Use only **merge (no-fast-forward)** or **rebase+fast-forward** merge strategy; never squash.
|
|
156
|
+
- REST fallback only when CLI commands fail or are unavailable. Ensure the request URI is fully qualified and includes exactly one `?api-version=7.1`.
|
|
157
|
+
|
|
158
|
+
f. **PR description quality rules** (both platforms):
|
|
159
|
+
- `## Summary` with why the PR exists.
|
|
160
|
+
- Structured `###` sections for each logical change area.
|
|
161
|
+
- A `### Testing` checklist (`- [x]` / `- [ ]`).
|
|
162
|
+
- Tables/code blocks where they improve clarity.
|
|
163
|
+
|
|
164
|
+
g. Capture PR ID/URL from command output.
|
|
165
|
+
- Always render PRs as clickable markdown links with the full URL.
|
|
166
|
+
- Never write a bare `PR #NNN`.
|
|
167
|
+
|
|
168
|
+
10. **Post-merge cleanup (worktree-safe):**
|
|
169
|
+
|
|
170
|
+
- Ensure remote cleanup:
|
|
171
|
+
- `git push origin --delete <branch>` (if already deleted, treat as non-fatal)
|
|
172
|
+
- `git fetch --prune origin`
|
|
173
|
+
- If `<branch>` is attached to an active worktree, skip local branch deletion.
|
|
174
|
+
- If branch is not attached to any active worktree, run `git branch -d <branch>`.
|
|
175
|
+
- Return to `main` only when appropriate for the active session/worktree context.
|
|
176
|
+
- If other stale local branches exist (merged or older than 7 days), list them and suggest cleanup.
|
|
177
|
+
- See [governance/git-conventions.md](../../governance/git-conventions.md) Post-Merge Cleanup section.
|
|
178
|
+
|
|
179
|
+
## Troubleshooting
|
|
180
|
+
|
|
181
|
+
- **Wrong platform commands:** Always detect platform from `git remote get-url origin` before running PR commands.
|
|
182
|
+
- **ADO `api-version` errors:** Prefer `az repos pr set-vote` and `az repos pr update` first. If REST fallback is needed, verify URI path and single `?api-version=7.1`.
|
|
183
|
+
- **Reviewer already assigned:** Treat as non-fatal; continue without re-adding reviewer.
|
|
184
|
+
- **Vote API quirks / policy blocks:** If `set-vote` succeeds but approval does not satisfy policy, confirm reviewer vote state and require a second human approval.
|
|
185
|
+
- **Worktree branch delete failure:** If branch is attached to a worktree, skip local delete and continue with remote delete + prune.
|
|
186
|
+
- **Remote branch already deleted:** Continue and run `git fetch --prune origin`.
|
|
187
|
+
|
|
188
|
+
Output format after execution:
|
|
189
|
+
|
|
190
|
+
## Commit Complete
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
[commit hash] type(scope): description
|
|
194
|
+
Author: Display Name <email>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Files committed:**
|
|
198
|
+
|
|
199
|
+
- File 1
|
|
200
|
+
- File 2
|
|
201
|
+
- ...
|
|
202
|
+
|
|
203
|
+
**Commit metadata used:**
|
|
204
|
+
|
|
205
|
+
- Author override: `yes/no`
|
|
206
|
+
- Agent trailers: `included/skipped`
|
|
207
|
+
- Provider trailer: `included/skipped`
|
|
208
|
+
|
|
209
|
+
**Pull Request:** [full PR URL](https://github.com/{org}/{repo}/pull/{id} or https://dev.azure.com/{org}/{project}/_git/{repo}/pullrequest/{id})
|
|
210
|
+
|
|
211
|
+
**Next:** Continue work or run `spell-close-session` to finalize journal and session docs.
|