arcane-cli 0.22.12 → 0.22.13
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/dist/assets/.arcane/governance/universal-agent-rules.md +6 -0
- package/dist/assets/.claude/commands/spell-address-review.md +4 -0
- package/dist/assets/.claude/commands/spell-adopt-docs.md +4 -0
- package/dist/assets/.claude/commands/spell-arcane-version.md +4 -0
- package/dist/assets/.claude/commands/spell-architect.md +4 -0
- package/dist/assets/.claude/commands/spell-brainstorm.md +4 -0
- package/dist/assets/.claude/commands/spell-bug.md +4 -0
- package/dist/assets/.claude/commands/spell-bump.md +4 -0
- package/dist/assets/.claude/commands/spell-check-drift.md +4 -0
- package/dist/assets/.claude/commands/spell-close-session.md +4 -0
- package/dist/assets/.claude/commands/spell-commit-work.md +4 -0
- package/dist/assets/.claude/commands/spell-create-pull-request.md +4 -0
- package/dist/assets/.claude/commands/spell-document.md +4 -0
- package/dist/assets/.claude/commands/spell-dotnet-expert.md +4 -0
- package/dist/assets/.claude/commands/spell-enchant.md +4 -0
- package/dist/assets/.claude/commands/spell-explain-concept.md +4 -0
- package/dist/assets/.claude/commands/spell-feedback.md +4 -0
- package/dist/assets/.claude/commands/spell-full-cycle.md +4 -0
- package/dist/assets/.claude/commands/spell-generate-bot-icons.md +4 -0
- package/dist/assets/.claude/commands/spell-implement.md +4 -0
- package/dist/assets/.claude/commands/spell-make-discoverable.md +4 -0
- package/dist/assets/.claude/commands/spell-manifest.md +4 -0
- package/dist/assets/.claude/commands/spell-open-session.md +4 -0
- package/dist/assets/.claude/commands/spell-plan.md +4 -0
- package/dist/assets/.claude/commands/spell-present-arcane.md +4 -0
- package/dist/assets/.claude/commands/spell-product-review.md +4 -0
- package/dist/assets/.claude/commands/spell-review-batch.md +4 -0
- package/dist/assets/.claude/commands/spell-review.md +4 -0
- package/dist/assets/.claude/commands/spell-save-idea.md +4 -0
- package/dist/assets/.claude/commands/spell-scope.md +4 -0
- package/dist/assets/.claude/commands/spell-security-review.md +4 -0
- package/dist/assets/.claude/commands/spell-ship.md +4 -0
- package/dist/assets/.claude/commands/spell-status.md +4 -0
- package/dist/assets/.claude/commands/spell-suggest-feature.md +4 -0
- package/dist/assets/.claude/commands/spell-summon-venture.md +4 -0
- package/dist/assets/.claude/commands/spell-test.md +4 -0
- package/dist/assets/.claude/commands/spell-todo.md +4 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -53,6 +53,12 @@ See also: [[README]], [[DECISIONS]], [[governance/git-conventions|Git Convention
|
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
56
|
+
## Spell Lifecycle
|
|
57
|
+
|
|
58
|
+
22. **Lifecycle operations run through their spell when one is installed.** Committing, opening a PR, opening or closing a session, reviewing code, and shipping each have a dedicated spell (`spell-commit-work`, `spell-create-pull-request`, `spell-open-session`/`spell-close-session`, `spell-review`, `spell-ship`). When the installed component set includes the matching spell, invoke it for that operation rather than improvising the workflow from general knowledge — even when the user does not name the spell explicitly. The intent→spell routing table injected into each client's L1 instruction file (`CLAUDE.md`, `.github/copilot-instructions.md`, `AGENTS.md`) is normative for this mapping, not illustrative.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
56
62
|
## Recommendation Guardrails (ADR-034)
|
|
57
63
|
|
|
58
64
|
15. **Flag actionable recommendations.** Any recommendation that could lead to a purchase, subscription, account creation, or irreversible action must: (a) be flagged explicitly, (b) use verified current information — never assume or fabricate, (c) present free/no-cost alternatives when they exist, (d) state confidence level if based on general knowledge. For >$50 or contracts, require explicit confirmation. See [[agents/agent-policies#actionable-recommendation-policy-adr-034|Full Policy]].
|
package/dist/index.js
CHANGED
|
@@ -1444,6 +1444,22 @@ ${rules}
|
|
|
1444
1444
|
**Denied:** ${def.tools.denied.join(", ")}
|
|
1445
1445
|
`;
|
|
1446
1446
|
}
|
|
1447
|
+
function renderSpellRoutingSection() {
|
|
1448
|
+
return `## Spell Routing
|
|
1449
|
+
|
|
1450
|
+
| When you're about to... | Invoke |
|
|
1451
|
+
|---|---|
|
|
1452
|
+
| Commit work | \`spell-commit-work\` |
|
|
1453
|
+
| Open a session | \`spell-open-session\` |
|
|
1454
|
+
| Close a session | \`spell-close-session\` |
|
|
1455
|
+
| Open a pull request | \`spell-create-pull-request\` |
|
|
1456
|
+
| Ship a feature end-to-end | \`spell-full-cycle\` |
|
|
1457
|
+
| Fix a bug | \`spell-bug\` |
|
|
1458
|
+
| Review code or a PR | \`spell-review\` |
|
|
1459
|
+
|
|
1460
|
+
If a spell exists for the workflow you are about to perform, invoke it \u2014 do not improvise the workflow from general knowledge, even when the user doesn't name the spell.
|
|
1461
|
+
`;
|
|
1462
|
+
}
|
|
1447
1463
|
function renderAgentRosterSection(entries) {
|
|
1448
1464
|
const rows = entries.map(
|
|
1449
1465
|
({ def, displayName }) => `| **${displayName}** | ${def.role} | ${def.category} |`
|
|
@@ -1564,32 +1580,35 @@ async function syncAgents(targetDir, assetsDir, roster, options = {}) {
|
|
|
1564
1580
|
}
|
|
1565
1581
|
synced.push(`.github/agents/${fileName}`);
|
|
1566
1582
|
}
|
|
1567
|
-
const
|
|
1583
|
+
const copilotSection = `${renderSpellRoutingSection()}
|
|
1584
|
+
${renderAgentRosterSection(resolved)}`;
|
|
1568
1585
|
const copilotMerged = await mergeIntoFile(
|
|
1569
1586
|
targetDir,
|
|
1570
1587
|
".github/copilot-instructions.md",
|
|
1571
|
-
|
|
1588
|
+
copilotSection,
|
|
1572
1589
|
{ force: true, dryRun: options.dryRun }
|
|
1573
1590
|
);
|
|
1574
1591
|
if (copilotMerged)
|
|
1575
1592
|
synced.push(".github/copilot-instructions.md (agents section)");
|
|
1576
1593
|
}
|
|
1577
1594
|
if (options.claude !== false) {
|
|
1578
|
-
const
|
|
1595
|
+
const claudeSection = `${renderSpellRoutingSection()}
|
|
1596
|
+
${renderAgentRosterSection(resolved)}`;
|
|
1579
1597
|
const claudeMerged = await mergeIntoFile(
|
|
1580
1598
|
targetDir,
|
|
1581
1599
|
"CLAUDE.md",
|
|
1582
|
-
|
|
1600
|
+
claudeSection,
|
|
1583
1601
|
{ force: true, dryRun: options.dryRun }
|
|
1584
1602
|
);
|
|
1585
1603
|
if (claudeMerged) synced.push("CLAUDE.md (agents section)");
|
|
1586
1604
|
}
|
|
1587
1605
|
if (options.codex !== false) {
|
|
1588
|
-
const
|
|
1606
|
+
const codexSection = `${renderSpellRoutingSection()}
|
|
1607
|
+
${renderAgentRosterSection(resolved)}`;
|
|
1589
1608
|
const codexMerged = await mergeIntoFile(
|
|
1590
1609
|
targetDir,
|
|
1591
1610
|
"AGENTS.md",
|
|
1592
|
-
|
|
1611
|
+
codexSection,
|
|
1593
1612
|
{ force: true, dryRun: options.dryRun }
|
|
1594
1613
|
);
|
|
1595
1614
|
if (codexMerged) synced.push("AGENTS.md (agents section)");
|