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.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +253 -0
  3. package/dist/assets/.arcane/agents/agent-policies-template.md +414 -0
  4. package/dist/assets/.arcane/governance/agent-approved-paths.md +60 -0
  5. package/dist/assets/.arcane/governance/agent-policies.md +414 -0
  6. package/dist/assets/.arcane/governance/agent-work-queue-model.md +61 -0
  7. package/dist/assets/.arcane/governance/authentication-strategy.md +220 -0
  8. package/dist/assets/.arcane/governance/cicd-standards.md +227 -0
  9. package/dist/assets/.arcane/governance/decision-documentation-standard.md +335 -0
  10. package/dist/assets/.arcane/governance/development-methodology.md +384 -0
  11. package/dist/assets/.arcane/governance/git-conventions.md +759 -0
  12. package/dist/assets/.arcane/governance/hardening-checklist.md +117 -0
  13. package/dist/assets/.arcane/governance/naming-conventions.md +142 -0
  14. package/dist/assets/.arcane/governance/new-business-setup.md +182 -0
  15. package/dist/assets/.arcane/governance/poc-management-pattern.md +190 -0
  16. package/dist/assets/.arcane/governance/portable-bootstrap.md +101 -0
  17. package/dist/assets/.arcane/governance/product-excellence-standards.md +211 -0
  18. package/dist/assets/.arcane/governance/rca-process-standard.md +157 -0
  19. package/dist/assets/.arcane/governance/spell-authoring-standards.md +129 -0
  20. package/dist/assets/.arcane/governance/testing-standards.md +158 -0
  21. package/dist/assets/.arcane/governance/threat-model.md +104 -0
  22. package/dist/assets/.arcane/governance/universal-agent-rules.md +108 -0
  23. package/dist/assets/.arcane/image-prompts/adelaide-image-prompt.md +140 -0
  24. package/dist/assets/.arcane/image-prompts/alexander-image-prompt.md +138 -0
  25. package/dist/assets/.arcane/image-prompts/bess-image-prompt.md +139 -0
  26. package/dist/assets/.arcane/image-prompts/circe-image-prompt.md +143 -0
  27. package/dist/assets/.arcane/image-prompts/custodio-image-prompt.md +140 -0
  28. package/dist/assets/.arcane/image-prompts/iris-image-prompt.md +139 -0
  29. package/dist/assets/.arcane/image-prompts/kellar-image-prompt.md +141 -0
  30. package/dist/assets/.arcane/image-prompts/lafayette-image-prompt.md +140 -0
  31. package/dist/assets/.arcane/image-prompts/lince-image-prompt.md +142 -0
  32. package/dist/assets/.arcane/image-prompts/mercurio-image-prompt.md +140 -0
  33. package/dist/assets/.arcane/image-prompts/merlin-image-prompt.md +139 -0
  34. package/dist/assets/.arcane/image-prompts/prospero-image-prompt.md +141 -0
  35. package/dist/assets/.arcane/templates/venture-template/overview.md +66 -0
  36. package/dist/assets/.claude/commands/spell-address-review.md +9 -0
  37. package/dist/assets/.claude/commands/spell-arcane-version.md +9 -0
  38. package/dist/assets/.claude/commands/spell-architect.md +9 -0
  39. package/dist/assets/.claude/commands/spell-bootstrap-business.md +9 -0
  40. package/dist/assets/.claude/commands/spell-brainstorm.md +9 -0
  41. package/dist/assets/.claude/commands/spell-bug.md +9 -0
  42. package/dist/assets/.claude/commands/spell-bump.md +9 -0
  43. package/dist/assets/.claude/commands/spell-check-drift.md +9 -0
  44. package/dist/assets/.claude/commands/spell-close-session.md +9 -0
  45. package/dist/assets/.claude/commands/spell-commit-work.md +9 -0
  46. package/dist/assets/.claude/commands/spell-create-pull-request.md +9 -0
  47. package/dist/assets/.claude/commands/spell-document.md +9 -0
  48. package/dist/assets/.claude/commands/spell-dotnet-expert.md +9 -0
  49. package/dist/assets/.claude/commands/spell-eas-ios-deploy.md +9 -0
  50. package/dist/assets/.claude/commands/spell-enchant.md +9 -0
  51. package/dist/assets/.claude/commands/spell-explain-concept.md +9 -0
  52. package/dist/assets/.claude/commands/spell-feedback.md +9 -0
  53. package/dist/assets/.claude/commands/spell-full-cycle.md +9 -0
  54. package/dist/assets/.claude/commands/spell-generate-bot-icons.md +9 -0
  55. package/dist/assets/.claude/commands/spell-implement.md +9 -0
  56. package/dist/assets/.claude/commands/spell-open-session.md +9 -0
  57. package/dist/assets/.claude/commands/spell-plan.md +9 -0
  58. package/dist/assets/.claude/commands/spell-present-arcane.md +9 -0
  59. package/dist/assets/.claude/commands/spell-product-review.md +9 -0
  60. package/dist/assets/.claude/commands/spell-review-batch.md +9 -0
  61. package/dist/assets/.claude/commands/spell-review.md +9 -0
  62. package/dist/assets/.claude/commands/spell-save-idea.md +9 -0
  63. package/dist/assets/.claude/commands/spell-scope.md +9 -0
  64. package/dist/assets/.claude/commands/spell-security-review.md +9 -0
  65. package/dist/assets/.claude/commands/spell-ship.md +9 -0
  66. package/dist/assets/.claude/commands/spell-status.md +9 -0
  67. package/dist/assets/.claude/commands/spell-suggest-feature.md +9 -0
  68. package/dist/assets/.claude/commands/spell-test.md +9 -0
  69. package/dist/assets/.claude/commands/spell-todo.md +9 -0
  70. package/dist/assets/.github/agents/adelaide.agent.md +44 -0
  71. package/dist/assets/.github/agents/alexander.agent.md +43 -0
  72. package/dist/assets/.github/agents/bess.agent.md +42 -0
  73. package/dist/assets/.github/agents/circe.agent.md +43 -0
  74. package/dist/assets/.github/agents/custodio.agent.md +44 -0
  75. package/dist/assets/.github/agents/iris.agent.md +43 -0
  76. package/dist/assets/.github/agents/kellar.agent.md +43 -0
  77. package/dist/assets/.github/agents/lafayette.agent.md +42 -0
  78. package/dist/assets/.github/agents/lince.agent.md +43 -0
  79. package/dist/assets/.github/agents/mercurio.agent.md +43 -0
  80. package/dist/assets/.github/agents/merlin.agent.md +44 -0
  81. package/dist/assets/.github/agents/prospero.agent.md +43 -0
  82. package/dist/assets/.github/instructions/agent-output.instructions.md +48 -0
  83. package/dist/assets/.github/prompts/spell-address-review.prompt.md +114 -0
  84. package/dist/assets/.github/prompts/spell-arcane-version.prompt.md +82 -0
  85. package/dist/assets/.github/prompts/spell-architect.prompt.md +116 -0
  86. package/dist/assets/.github/prompts/spell-bootstrap-business.prompt.md +73 -0
  87. package/dist/assets/.github/prompts/spell-brainstorm.prompt.md +124 -0
  88. package/dist/assets/.github/prompts/spell-bug.prompt.md +109 -0
  89. package/dist/assets/.github/prompts/spell-bump.prompt.md +73 -0
  90. package/dist/assets/.github/prompts/spell-check-drift.prompt.md +97 -0
  91. package/dist/assets/.github/prompts/spell-close-session.prompt.md +189 -0
  92. package/dist/assets/.github/prompts/spell-commit-work.prompt.md +211 -0
  93. package/dist/assets/.github/prompts/spell-create-pull-request.prompt.md +170 -0
  94. package/dist/assets/.github/prompts/spell-document.prompt.md +83 -0
  95. package/dist/assets/.github/prompts/spell-dotnet-expert.prompt.md +117 -0
  96. package/dist/assets/.github/prompts/spell-eas-ios-deploy.prompt.md +183 -0
  97. package/dist/assets/.github/prompts/spell-enchant.prompt.md +385 -0
  98. package/dist/assets/.github/prompts/spell-explain-concept.prompt.md +69 -0
  99. package/dist/assets/.github/prompts/spell-feedback.prompt.md +113 -0
  100. package/dist/assets/.github/prompts/spell-full-cycle.prompt.md +201 -0
  101. package/dist/assets/.github/prompts/spell-generate-bot-icons.prompt.md +84 -0
  102. package/dist/assets/.github/prompts/spell-implement.prompt.md +101 -0
  103. package/dist/assets/.github/prompts/spell-open-session.prompt.md +116 -0
  104. package/dist/assets/.github/prompts/spell-plan.prompt.md +145 -0
  105. package/dist/assets/.github/prompts/spell-present-arcane.prompt.md +188 -0
  106. package/dist/assets/.github/prompts/spell-product-review.prompt.md +97 -0
  107. package/dist/assets/.github/prompts/spell-review-batch.prompt.md +94 -0
  108. package/dist/assets/.github/prompts/spell-review.prompt.md +131 -0
  109. package/dist/assets/.github/prompts/spell-save-idea.prompt.md +83 -0
  110. package/dist/assets/.github/prompts/spell-scope.prompt.md +263 -0
  111. package/dist/assets/.github/prompts/spell-security-review.prompt.md +129 -0
  112. package/dist/assets/.github/prompts/spell-ship.prompt.md +104 -0
  113. package/dist/assets/.github/prompts/spell-status.prompt.md +85 -0
  114. package/dist/assets/.github/prompts/spell-suggest-feature.prompt.md +110 -0
  115. package/dist/assets/.github/prompts/spell-test.prompt.md +87 -0
  116. package/dist/assets/.github/prompts/spell-todo.prompt.md +126 -0
  117. package/dist/assets/DECISIONS.md +19 -0
  118. package/dist/assets/TODO.md +7 -0
  119. package/dist/assets/agents/architecture-lead.yaml +61 -0
  120. package/dist/assets/agents/collaborator.yaml +59 -0
  121. package/dist/assets/agents/devops.yaml +60 -0
  122. package/dist/assets/agents/frontend-dev.yaml +60 -0
  123. package/dist/assets/agents/fullstack-dev.yaml +59 -0
  124. package/dist/assets/agents/marketing-strategist.yaml +60 -0
  125. package/dist/assets/agents/mobile-dev.yaml +59 -0
  126. package/dist/assets/agents/operations-comms.yaml +58 -0
  127. package/dist/assets/agents/orchestrator.yaml +60 -0
  128. package/dist/assets/agents/qa-lead.yaml +60 -0
  129. package/dist/assets/agents/research-analyst.yaml +59 -0
  130. package/dist/assets/agents/security-ops.yaml +61 -0
  131. package/dist/assets/ai-context/system-prompt-context.md +32 -0
  132. package/dist/assets/journal/.gitkeep +0 -0
  133. package/dist/index.d.ts +12 -0
  134. package/dist/index.js +2313 -0
  135. package/dist/index.js.map +1 -0
  136. package/package.json +72 -0
@@ -0,0 +1,117 @@
1
+ ---
2
+ title: Linux Security Hardening Checklist
3
+ audience: human
4
+ last_updated: YYYY-MM-DD
5
+ status: active
6
+ distributable: true
7
+ tags: [security, hardening, linux]
8
+ ---
9
+
10
+ # Linux Security Hardening Checklist
11
+
12
+ Step-by-step hardening for a Linux host that will run an autonomous agent runtime.
13
+
14
+ ## Executive Summary
15
+
16
+ - This checklist is the operational sequence for securing a host before production use.
17
+ - It translates threat-model risks into actionable controls with verification steps.
18
+ - Completion status here should be reflected in your security audit log.
19
+ - Use this as an execution checklist, not a conceptual guide.
20
+
21
+ See also: [Threat Model](threat-model.md), [Authentication Strategy](authentication-strategy.md)
22
+
23
+ ---
24
+
25
+ ## Pre-Checklist: Know Your Environment
26
+
27
+ - [ ] Confirm OS distribution and version (e.g. `lsb_release -a`)
28
+ - [ ] Confirm kernel version (e.g. `uname -r`)
29
+ - [ ] Document machine hostname (`{HOST}`) and primary user account (`{OPERATOR_USERNAME}`)
30
+
31
+ ---
32
+
33
+ ## 1. System Updates
34
+
35
+ - [ ] Update all packages (e.g. `sudo apt update && sudo apt upgrade -y`)
36
+ - [ ] Enable unattended security updates so patches land automatically
37
+
38
+ ---
39
+
40
+ ## 2. User & Privilege Management
41
+
42
+ - [ ] Disable direct root login; use `sudo` only
43
+ - [ ] Audit the sudoers file — confirm only necessary users have sudo
44
+ - [ ] Remove or lock unused accounts
45
+ - [ ] Keep any `NOPASSWD` sudoers exceptions narrowly scoped to a single binary, never a wildcard
46
+
47
+ ---
48
+
49
+ ## 3. SSH (if enabled)
50
+
51
+ - [ ] Disable password authentication — key-based only
52
+ - [ ] Disable root login over SSH (`PermitRootLogin no`)
53
+ - [ ] Change the default SSH port if externally exposed
54
+ - [ ] Enable a brute-force guard (e.g. fail2ban) if SSH is reachable from untrusted networks
55
+
56
+ ---
57
+
58
+ ## 4. Source Control (Git)
59
+
60
+ - [ ] Configure an SSH key for your Git host (prefer Ed25519, fall back to RSA 4096 if rejected)
61
+ - [ ] Use SSH remote URLs so credentials are not embedded in URLs or prompted interactively
62
+ - [ ] Keep SSH private keys with mode `600` (`chmod 600 ~/.ssh/id_*`)
63
+
64
+ ---
65
+
66
+ ## 5. Firewall & Network
67
+
68
+ - [ ] Enable a host firewall (e.g. UFW)
69
+ - [ ] Default deny inbound traffic
70
+ - [ ] Allow only the inbound ports that are strictly required
71
+ - [ ] Enable firewall logging
72
+
73
+ **Adjacent hosts (general guidance):**
74
+ - [ ] Disable network discovery and file sharing on machines sharing the LAN with the agent host
75
+ Rationale: minimize attack surface, especially with an autonomous agent on the same network. Prefer on-demand, explicit file transfer over always-on sharing.
76
+
77
+ ---
78
+
79
+ ## 6. Drive Protection
80
+
81
+ - [ ] Ensure foreign/sensitive drives are not auto-mounted (omit from `/etc/fstab`, or list with `noauto`)
82
+ - [ ] Enable full-disk encryption on drives holding sensitive data, so they are unreadable from another OS or a stolen disk
83
+ - [ ] Verify encryption: attempt to mount the encrypted volume from another OS and confirm it fails
84
+
85
+ ### Full-Disk Encryption Notes (general best practices)
86
+
87
+ - **Never store the only recovery key on the encrypted drive.** Keep it in at least two places: a trusted backup location and an offline printed copy.
88
+ - **Treat boot-partition directories as critical** — deleting boot entries can render the machine unbootable and require recovery media.
89
+
90
+ ---
91
+
92
+ ## 7. Agent Runtime
93
+
94
+ - [ ] Define which user account the agent runtime runs as — run as a non-root user
95
+ - [ ] Bind the gateway/control plane to loopback only (no LAN exposure)
96
+ - [ ] Authenticate the gateway with a token loaded from an env var / secret manager — never in a committed config file
97
+ - [ ] Set the runtime state directory to mode `700` (user-only)
98
+ - [ ] Remove dead or default-permissive command allow/deny rules left over from onboarding
99
+ - [ ] Run the runtime's security audit and resolve critical findings
100
+ - [ ] Define which directories the runtime has write access to; scope per agent where possible
101
+ - [ ] Define network egress rules — enumerate which external endpoints the runtime may reach
102
+ - [ ] Establish a logging review schedule for agent actions (e.g. spot-check weekly, full review monthly)
103
+ - [ ] Configure tool hardening: deny shell exec where not needed, restrict filesystem scope per agent
104
+ - [ ] Store all API keys via env var / secret manager (mode `600` on any `.env`), never plaintext in config
105
+
106
+ ---
107
+
108
+ ## 8. Remote Access
109
+
110
+ - [ ] Provide remote access through an encrypted tunnel or VPN rather than open inbound ports
111
+ - [ ] Enable TLS/HTTPS for any remotely reachable endpoint
112
+ - [ ] Review the access list — confirm only expected devices can reach the gateway
113
+ - [ ] Re-verify the device/access list whenever topology changes
114
+
115
+ ---
116
+
117
+ *Expand each section with the specific commands and verification steps used in your environment, and log completed steps in your security audit log.*
@@ -0,0 +1,142 @@
1
+ ---
2
+ title: Naming Conventions
3
+ audience: both
4
+ last_updated: YYYY-MM-DD
5
+ status: active
6
+ distributable: true
7
+ tags: [naming, convention, machines, agents, identity]
8
+ ---
9
+
10
+ # Naming Conventions
11
+
12
+ How machines, AI agents, and systems are named across your projects. This is a **template** — adapt the theme and fill in your own roster. Your filled-in instance lives in your ops repo, not here.
13
+
14
+ ## Executive Summary
15
+
16
+ - Naming is split into three tiers: machines, AI agents, and systems/services.
17
+ - Machine names are iconic identities, agent names are persona-based, and service names are functional.
18
+ - Names must be unique, memorable, and consistent across projects to reduce operational ambiguity.
19
+ - This file is the reference for the patterns and rules; record your actual assigned names in your own ops repo.
20
+
21
+ ---
22
+
23
+ ## Naming Philosophy
24
+
25
+ Two rules govern every name in the system.
26
+
27
+ **The Naming Test:** if an established industry term exists for the thing, use the real term — a universe name has to be *earned* by the absence of one. Two dialects result: magic grammar for the personas and vocabulary, plain functional payloads for everything technical. Corollary: the more autonomous the tool, the more boring its name should be.
28
+
29
+ **The IP rule:** persona names must be **public domain or your own coinage**. No living people. No franchise-coined characters — a borrowed name is owned by whoever coined it, no matter how well it fits. Before any name ships, run the four checks: who coined it; does an estate still do business in it; do same-audience products already claim it (search live — don't trust memory); and what is its first association in each market you operate in, said aloud in every language your team speaks.
30
+
31
+ Names should be memorable, distinctive, and never repeated across categories.
32
+
33
+ The naming system has three tiers:
34
+
35
+ | Category | What Gets Named | Naming Style | Examples |
36
+ | ---------------------- | --------------------------------------------- | ----------------------------------------------------------- | -------------------------- |
37
+ | **Machines** | Physical hardware (PCs, servers, laptops) | Legendary / iconic figures — the "heavy hitters" | Atlas, Goliath-class names |
38
+ | **AI Agents** | Autonomous agents running operations | Public-domain characters — smart, capable, distinct personality | Merlin, Athena, Prospero |
39
+ | **Systems / Services** | Databases, APIs, internal tools | Functional names — clear, descriptive | Inventory API, OrderQueue |
40
+
41
+ ---
42
+
43
+ ## Machines
44
+
45
+ Machines get the most powerful, iconic names. These are the foundational hardware — they deserve heavyweight identifiers.
46
+
47
+ | Machine | Example Name | Why |
48
+ | ----------------------------- | ------------ | ---------------------------------------------------------------- |
49
+ | Primary workstation | **Atlas** | The one that carries the load — your most powerful build/dev box |
50
+ | Laptop | **Voyager** | The mobile unit that travels with you |
51
+ | Secondary / home server | **Nimbus** | Always-on node bridging local and cloud environments |
52
+
53
+ **Hostname convention:** use the same name everywhere, cased per platform — e.g., Windows hostname `ATLAS`, Linux hostname `atlas`, in documentation `Atlas` (TitleCase).
54
+
55
+ ---
56
+
57
+ ## AI Agents
58
+
59
+ Agents get persona names paired with a role. The persona name is the primary identifier — what you call it in conversation, logs, and dashboards. The role is metadata that describes what it does.
60
+
61
+ ### Format
62
+
63
+ ```
64
+ [Persona Name] — [Role Title] / [Responsibility Summary]
65
+ ```
66
+
67
+ ### Assignment Rules
68
+
69
+ - One persona name per agent, globally unique across all projects.
70
+ - An agent may serve multiple projects but keeps the same name and role everywhere.
71
+ - If an agent's role changes significantly, it gets a new name (don't reuse names for different roles).
72
+ - If you collaborate with other operators who run their own Arcane instances, reserve names across instances so they don't collide.
73
+
74
+ ### Default Roster (Arcane personas)
75
+
76
+ Arcane ships with twelve default agent personas, organized by functional cluster. Use them as-is, rename them to your chosen universe, or define your own. The persona definitions live in `.github/agents/` (and `agents/*.yaml`); deployment state (which projects each serves, status, git identity) belongs in your ops repo.
77
+
78
+ | Persona | Epithet | Role | Cluster |
79
+ | ------------- | -------------------- | --------------------------- | -------------- |
80
+ | **Kellar** | the Maestro | Product Operations Manager | Foundation |
81
+ | **Merlin** | the Archmage | CTO / Architecture Lead | Guide |
82
+ | **Alexander** | the Man Who Knows | Research & Backlog Analyst | Mind |
83
+ | **Custodio** | the Warden | Security Operations | Bridge |
84
+ | **Lince** | the Unmasker | QA Lead | Guardian |
85
+ | **Mercurio** | the Swift | Mobile Developer | Build Team |
86
+ | **Adelaide** | the Illusionist | Frontend Developer | Build Team |
87
+ | **Lafayette** | the Conjuror | Full-Stack Developer | Build Team |
88
+ | **Circe** | the Charmweaver | Marketing Strategist | Voice |
89
+ | **Bess** | the Herald | Operations Communications | Voice |
90
+ | **Iris** | the Emissary | External Collaboration Lead | Bridge |
91
+ | **Prospero** | the Stormcaller | DevOps / CI/CD Engineer | Infrastructure |
92
+
93
+ Twelve legendary agents — the Arcanos. Every namesake is public domain: golden-age stage magicians (Kellar, Lafayette, Adelaide, Alexander, Bess), myth and classic literature (Merlin, Circe, Iris, Prospero, Mercurio), and coinages from living vocabulary (Lince — *ojo de lince*; Custodio — *ángel custodio*). Lince is never anglicized.
94
+
95
+ **Role consolidation (ADR-031):** Framework-specific dev roles (.NET, Blazor, React, Flutter, MAUI) are consolidated into generic roles (Full-Stack, Frontend, Mobile). The framework/stack is a prompt parameter, not an agent identity. This scales without needing a new agent for every technology.
96
+
97
+ **Naming policy:** All agent names should be positive characters — beings, not objects — with a clear thematic connection to their role.
98
+
99
+ **Canonical agent identity domain:** Use a single domain for all agent and tool Git identities — e.g., `merlin@{OPERATOR_DOMAIN}`. See [[DECISIONS#ADR-028|ADR-028]] for the full attribution model.
100
+
101
+ ### Power Levels (ADR-032)
102
+
103
+ Agent autonomy is assigned per agent × per repo using gamified power levels. See [[DECISIONS#ADR-032|ADR-032]] for full rationale. This is the single canonical ladder — every other document mirrors it. The teachable gradient: **wizards study, sorcerers wield, magi command.**
104
+
105
+ | Level | Name | Behavior | Push Model |
106
+ | ----- | -------------- | ------------------------------------------------------- | ------------------------------------------- |
107
+ | 0 | **Spectator** | Locked — human only | N/A |
108
+ | 1 | **Apprentice** | Agent suggests; human executes | Human pushes all |
109
+ | 2 | **Wizard** | Scoped autonomous edits in approved paths | Agent pushes branch; PRs queued for review |
110
+ | 3 | **Sorcerer** | Autonomous topic-branch work | Agent pushes and creates PR; human approves |
111
+ | 4 | **Magus** | Self-merge within approved scope — the "Magus+" gate | Agent merges (fast-forward only) |
112
+ | 5 | **Archmage** | Broadest autonomous authority within an approved repo | Agent drives; human approves policy changes |
113
+
114
+ A common starting policy: cap ops/docs repos at **Wizard**, allow app repos up to **Archmage**, and keep repo creation at **Spectator** (human only).
115
+
116
+ ### Name Suggestions (Available Pool)
117
+
118
+ Every pool entry is public domain and pre-screened against the IP rule. Pick from these when assigning agents, or add your own — after running the four checks.
119
+
120
+ - **Golden-age magicians (all pre-1955, public domain):** Thurston, Devant, Maskelyne, Talma, Carter, Sherezada
121
+ - **Greek / Egyptian / Ancient Mythology:** Athena, Apollo, Hermes, Orpheus, Horus, Maat, Thoth, Enki, Imhotep
122
+
123
+ > **Note:** "Pre-screened" is not "cleared forever" — product namespaces shift constantly. Before a pooled name goes onto anything public-facing, re-run the four checks live: coiner, estate, same-audience products, first-association per market.
124
+
125
+ ---
126
+
127
+ ## Systems / Services
128
+
129
+ Internal tools, databases, APIs, and services use **functional names** — no persona names. These need to be immediately understood by anyone reading a log or config file.
130
+
131
+ **Format:** `[project-slug]-[function]` or just `[function]` if shared.
132
+
133
+ **Examples:**
134
+
135
+ - `acme-store-inventory-api`
136
+ - `widget-co-booking-db`
137
+ - `agent-runtime-monitor`
138
+ - `order-queue`
139
+
140
+ ---
141
+
142
+ > **Keep your real roster in your ops repo.** This template intentionally omits a live machine inventory, per-agent deployment status, and the naming decisions log — those are operator-specific instance data. Record them alongside your other org docs, not in the distributed framework.
@@ -0,0 +1,182 @@
1
+ ---
2
+ title: New Business Setup Guide
3
+ audience: both
4
+ status: draft
5
+ distributable: true
6
+ tags: [playbook, setup, onboarding, replicability, attribution]
7
+ ---
8
+
9
+ # New Business Setup Guide
10
+
11
+ The master guide for spinning up a new business ({venture}) under {LLC_NAME} using agent automation.
12
+
13
+ ## Executive Summary
14
+
15
+ - This playbook is the replication path from idea to operational business environment.
16
+ - It sequences project creation, infrastructure alignment, security prerequisites, and agent readiness.
17
+ - Follow this guide to reduce setup variance and avoid re-solving known operational decisions.
18
+ - Use this as the default onboarding runbook for every new business launch.
19
+
20
+ **Goal:** Follow this guide once and a new business is fully operational — project, repos, the agent runtime configured, infrastructure documented, legal basics covered.
21
+
22
+ > **How this guide was built:** Every step here is meant to be done manually at least once for a new {venture}. As steps are validated, they get automated. Check the `scripts/` folder — if a script exists for a step, run the script instead of doing it by hand.
23
+
24
+ ---
25
+
26
+ ## Before You Start
27
+
28
+ Have the following ready:
29
+
30
+ - [ ] Business name decided (both brand name and slug, e.g. `{venture}`)
31
+ - [ ] Business type clear (e-commerce, app, protocol, service)
32
+ - [ ] Access to your version-control host / project organization
33
+ - [ ] The agent runtime installed and operational
34
+ - [ ] Full-disk encryption confirmed active on any machine that holds credentials or working copies
35
+ - [ ] System clock correct and time sync enabled. **Critical:** an incorrect system clock breaks all SSL/HTTPS connections silently.
36
+
37
+ ---
38
+
39
+ ## Phase 1 — Project & Repo Setup
40
+
41
+ ### Step 1.1 — Create the Project
42
+
43
+ 1. Open your version-control host's project organization
44
+ 2. Create a **New Project**
45
+ 3. Name: the business slug (use your org's naming convention)
46
+ 4. Description: brief one-liner describing the business
47
+ 5. Visibility: **Private**
48
+ 6. Version control: **Git**
49
+ 7. Work item process: pick your tracker's default (Agile/Scrum/Kanban)
50
+
51
+ > **Script:** `scripts/create-project.ps1` — automate once the manual steps are validated.
52
+
53
+ ### Step 1.2 — Create Repos
54
+
55
+ Inside the new project, create repos based on business type:
56
+
57
+ **E-commerce business:**
58
+ - `storefront` — platform config, theme, automation scripts
59
+ - `inventory` — SKU tracking, reorder logic
60
+ - `marketing` — social content, SEO, copy templates
61
+
62
+ **App business:**
63
+ - `app` — application code
64
+ - `api` — backend/API
65
+ - `requirements` — specs, wireframes, design docs
66
+
67
+ **Protocol / whitepaper:**
68
+ - `whitepaper` — the spec document
69
+
70
+ To create a repo: Project → **Repos** → **New repository** → name → **Create**.
71
+
72
+ ### Step 1.3 — Copy Business Template into Docs Repo
73
+
74
+ In your docs/ops repo, copy `ventures/_template/` to `ventures/{venture}/` as a **reference hub** and fill in:
75
+
76
+ - `overview.md` — what the business is, current status, automation scope, blockers
77
+ - links/pointers to the business's dedicated project repos for runtime artifacts
78
+
79
+ > **Boundary rule:** the ops/docs repo stores shared framework + references. Business runtime artifacts live in business-specific project repos.
80
+
81
+ ---
82
+
83
+ ## Phase 2 — Infrastructure & Security
84
+
85
+ ### Step 2.1 — Confirm Security Baseline
86
+
87
+ Before running the agent runtime for any new business, verify:
88
+
89
+ - [ ] Full-disk encryption active on machines holding credentials or working copies
90
+ - [ ] Host hardening checklist complete ([[security/hardening-checklist|Hardening Checklist]])
91
+ - [ ] Agent policies reviewed for this business ([[agents/agent-policies|Agent Policies]])
92
+ - [ ] Runtime hardening enforcement checklist executed
93
+
94
+ ### Step 2.2 — Clone the Docs Repo
95
+
96
+ ```bash
97
+ git clone <docs-repo-url> ~/code/{repo}
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Phase 3 — Agent Runtime Configuration
103
+
104
+ ### Step 3.1 — Install the Agent Runtime (if not already installed)
105
+
106
+ See [[agents/installation|Runtime Installation]].
107
+
108
+ ### Step 3.2 — Configure the Runtime for This Business
109
+
110
+ - Use the reference template in [[ventures/_template/overview|Business Template]] to capture scope and links
111
+ - Apply business-specific runtime configuration in that business's own project repos and environment
112
+ - Review [[agents/agent-policies|Agent Policies]] — adjust permitted actions if needed for this business type
113
+
114
+ ### Step 3.3 — Agent Git Identity Setup
115
+
116
+ Every agent that will produce commits for this business must have a registered Git identity **before making its first commit**. See [[governance/git-conventions#agent-attribution-model|Git Conventions — Agent Attribution]].
117
+
118
+ For each agent assigned to this business:
119
+
120
+ 1. **Confirm persona name** is registered in [[naming-conventions|Naming Conventions]] agent roster.
121
+ 2. **Confirm Git identity** exists in the registered identities table in [[governance/git-conventions#agent-email-convention|Git Conventions]].
122
+ 3. **Add agent to `.mailmap`** in every repo the agent will commit to:
123
+ ```
124
+ {AGENT_NAME} <{AGENT_EMAIL}>
125
+ ```
126
+ 4. **Verify** you can commit with the agent's author:
127
+ ```bash
128
+ git commit --allow-empty --author="{AGENT_NAME} <{AGENT_EMAIL}>" \
129
+ --trailer="Agent=kellar" --trailer="Model=test" --trailer="Provider=test" \
130
+ -m "test: verify agent git identity for {AGENT_NAME}"
131
+ git log -1 # confirm author shows {AGENT_NAME}
132
+ git reset HEAD~1 # clean up test commit
133
+ ```
134
+
135
+ ### Step 3.4 — Test Run
136
+
137
+ Run the agent runtime in dry-run / observation mode first. Do not let it execute live actions until you've reviewed its behavior.
138
+
139
+ ---
140
+
141
+ ## Phase 4 — Legal Baseline
142
+
143
+ ### Step 4.1 — Business Entity
144
+
145
+ - Confirm operations run under {LLC_NAME}
146
+ - If this business has meaningfully different liability exposure (e.g. physical goods vs. software), consult an attorney
147
+
148
+ ### Step 4.2 — Sales Tax (Physical Goods Only)
149
+
150
+ - Register for sales tax in your home jurisdiction if not already done
151
+ - Identify nexus states based on where you'll sell
152
+ - Configure tax collection on the platform (Shopify, Etsy, etc.)
153
+
154
+ ### Step 4.3 — Platform Terms of Service
155
+
156
+ - Review the selling platform's ToS for AI-generated listings/content
157
+ - Review your agent runtime's ToS for commercial use
158
+
159
+ ---
160
+
161
+ ## Phase 5 — First Launch Checklist
162
+
163
+ - [ ] At least 10 product listings live (or equivalent for non-e-commerce)
164
+ - [ ] Order/fulfillment workflow tested end-to-end
165
+ - [ ] The agent runtime running and monitored (see `agents/monitoring.md`)
166
+ - [ ] Legal baseline complete
167
+ - [ ] `ventures/{venture}/overview.md` status updated to reflect live status
168
+ - [ ] Journal entry written in `journal/YYYY-MM-DD-topic-slug.md` documenting launch
169
+
170
+ ---
171
+
172
+ ## What to Automate Next
173
+
174
+ As you complete this guide manually for each business, flag steps that are repetitive and mechanical. Those become scripts. Priority candidates:
175
+
176
+ - Project + repo creation (`scripts/create-project.ps1`)
177
+ - Runtime config generation from a template (`scripts/configure-runtime.sh`)
178
+ - Repo initialization with standard folder structure
179
+
180
+ ---
181
+
182
+ *Fill in this guide as you go. Every blank or TBD here is something you'll encounter during your first {venture} setup — document it then, not in advance.*
@@ -0,0 +1,190 @@
1
+ ---
2
+ title: POC Management Pattern
3
+ audience: both
4
+ last_updated: YYYY-MM-DD
5
+ status: active
6
+ distributable: true
7
+ tags: [governance, poc, prototypes, ideas, lifecycle, methodology]
8
+ ---
9
+
10
+ # POC Management Pattern
11
+
12
+ How ideas move from concept to product. Establishes folder conventions, artifact expectations per stage, iteration tracking, and promotion criteria. Complements the [[governance/development-methodology|Spell Loop]] methodology.
13
+
14
+ Related: [[governance/development-methodology|Development Methodology]]
15
+
16
+ ---
17
+
18
+ ## Lifecycle Stages
19
+
20
+ ```
21
+ CONCEPT ──► PROTOTYPE ──► FEATURE ──► PRODUCT
22
+ ventures/ Prototypes features/ business repo
23
+ (docs repo) (prototypes repo) (code repo) (code repo)
24
+ ```
25
+
26
+ | Stage | Location | Purpose | Work item? | Code allowed? |
27
+ |---|---|---|---|---|
28
+ | **Concept** | `ventures/<name>/` in the docs repo | Capture and refine an idea. Permanent archive. | No | No |
29
+ | **Prototype** | `<name>/` in the Prototypes repo | Small throwaway demo generated from specs. | No | Yes |
30
+ | **Feature** | `features/{id}-{slug}/` in target code repo | Full Spell Loop execution with planning artifacts. | Yes (tracker) | Yes |
31
+ | **Product** | Target code repo main branch | Shipped, maintained code. Business docs in the docs repo. | Yes (tracker) | Yes |
32
+
33
+ ### Stage Details
34
+
35
+ #### Concept (`ventures/<name>/`)
36
+
37
+ The permanent record of every idea — good, bad, or deferred. Ideas are **never deleted**. Frontmatter `status` tracks where each idea is in its lifecycle.
38
+
39
+ **Required files:**
40
+ - `overview.md` — What is it? Why does it matter? Who is it for? (Minimum viable concept doc.)
41
+
42
+ **Optional files:**
43
+ - `PRD.md` — If the idea has been through `spell-plan`
44
+ - `architecture.md` — If the idea has been through `spell-architect`
45
+ - `stories.json` — If architecture produced story breakdown
46
+ - Screenshots in `assets/screenshots/YYYY-MM-DD/` (linked from docs)
47
+
48
+ **What does NOT belong here:** Code files (`.js`, `.ts`, `.py`, `.html`, `.css`, etc.). The docs repo is a documentation-only repository.
49
+
50
+ #### Prototype (Prototypes repo)
51
+
52
+ Small, self-contained, throwaway code that demonstrates a concept. Prototypes are **convenience snapshots, not source-of-truth code**. In the vibe coding era, the spec (PRD + architecture) is the reproducible artifact — code can be regenerated from it at any time.
53
+
54
+ **Required files per prototype:**
55
+ - `README.md` — What it demos + link back to the concept spec in arcane (e.g., `See specs: arcane/ventures/magic-prompt/`)
56
+ - Whatever code files the demo needs
57
+
58
+ **Folder convention:** `<name>/` at repo root (e.g., `magic-prompt/`, `self-healing-poc/`)
59
+
60
+ **No governance overhead:** No PRs required, no work items, no branch policies. This is a sandbox. Commit directly to main.
61
+
62
+ #### Feature (`features/{id}-{slug}/`)
63
+
64
+ An idea that has entered the [[governance/development-methodology|Spell Loop]] with a tracker work item. Planning artifacts (PRD, architecture, stories.json) live in the target **code repo**, not the docs repo.
65
+
66
+ #### Product
67
+
68
+ Feature merged to main and shipped. Business-level documentation lives in `ventures/<name>/` in arcane.
69
+
70
+ ---
71
+
72
+ ## Idea Frontmatter Status
73
+
74
+ Every file in `ventures/<name>/` uses this frontmatter `status` field:
75
+
76
+ | Status | Meaning |
77
+ |---|---|
78
+ | `concept` | Captured but not yet explored. Initial state. |
79
+ | `exploring` | Actively being refined — PRD in progress, research happening. |
80
+ | `prototyping` | Code prototype exists in the Prototypes repo. |
81
+ | `promoted` | Entered Spell Loop as a feature in a code repo. Link to tracker work item. |
82
+ | `parked` | Not dead, but not active. May revisit later. |
83
+ | `archived` | Explored and intentionally abandoned. Keep for historical record. |
84
+
85
+ Set `status` in the overview.md (or PRD.md if that's the primary doc). When an idea is promoted, add `promoted_to` with the target repo and work item:
86
+
87
+ ```yaml
88
+ status: promoted
89
+ promoted_to:
90
+ repo: "{ORG}/{repo}"
91
+ work_item: 0
92
+ date: YYYY-MM-DD
93
+ ```
94
+
95
+ When an idea has a prototype, add `prototype_repo`:
96
+
97
+ ```yaml
98
+ status: prototyping
99
+ prototype_repo: "{ORG}/prototypes"
100
+ prototype_path: magic-prompt
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Iteration Tracking
106
+
107
+ Ideas evolve. Track iterations without complex versioning:
108
+
109
+ 1. **Use the idea's overview.md (or PRD) changelog section.** Add a `## Changelog` heading at the bottom with dated entries:
110
+ ```markdown
111
+ ## Changelog
112
+ - YYYY-MM-DD: Initial concept captured
113
+ - YYYY-MM-DD: PRD and architecture added (spell-plan + spell-architect)
114
+ - YYYY-MM-DD: Prototype v1 pushed to Prototypes repo
115
+ ```
116
+
117
+ 2. **Screenshots:** Save evidence of each meaningful state to `assets/screenshots/YYYY-MM-DD/` per [[assets/screenshots/README|screenshot conventions]]. Link from the changelog.
118
+
119
+ 3. **Git history is the version control.** Don't create `v1/`, `v2/` folders. The idea folder is a living document — git tracks every change.
120
+
121
+ ---
122
+
123
+ ## Promotion Criteria
124
+
125
+ ### Concept → Prototype
126
+
127
+ No formal gate. If someone (human or agent) wants to see the idea running, generate code from the spec and push to the Prototypes repo. The concept spec in `ventures/` stays as-is.
128
+
129
+ ### Concept/Prototype → Feature
130
+
131
+ All of these must be true:
132
+ - [ ] A tracker work item exists (User Story or Feature)
133
+ - [ ] A business track owns it (maps to a `ventures/<name>/` folder or a project)
134
+ - [ ] A target code repo exists (or needs to be created; repo creation is human-only)
135
+ - [ ] The idea has at least a PRD (`spell-plan` output)
136
+
137
+ When promoted: update the idea's frontmatter to `status: promoted` with `promoted_to` metadata. The idea folder stays in arcane forever as the historical record.
138
+
139
+ ### Feature → Product
140
+
141
+ Standard Spell Loop completion: `spell-implement` → `spell-test` → `spell-review` → `spell-ship`. Feature branch merged to main in the code repo.
142
+
143
+ ---
144
+
145
+ ## Non-Code Ideas
146
+
147
+ Not every idea needs code. Image projects, design concepts, process improvements, and research topics stay at concept stage permanently. They live in `ventures/<name>/` with an `overview.md` and never need a prototype.
148
+
149
+ ---
150
+
151
+ ## Specs-First Principle
152
+
153
+ > **The PRD + architecture are the reproducible artifact. Code is ephemeral.**
154
+
155
+ In the vibe coding era, a well-written spec can regenerate a prototype in minutes. This means:
156
+ - **Invest in the spec**, not the code. A good PRD with clear requirements and a solid architecture doc is worth more than throwaway prototype code.
157
+ - **Don't mourn lost prototypes.** If prototype code is deleted, damaged, or outdated, regenerate it from the spec.
158
+ - **The Prototypes repo is a convenience**, not a vault. It holds the latest snapshot of demo code. It is not versioned, tagged, or released.
159
+ - **When an idea enters the Spell Loop**, the spec travels to the code repo (as `features/{id}-{slug}/PRD.md`). The prototype in the Prototypes repo can be abandoned.
160
+
161
+ ---
162
+
163
+ ## Relationship to Existing Patterns
164
+
165
+ | Pattern | How it connects |
166
+ |---|---|
167
+ | [[governance/development-methodology\|Spell Loop]] | Ideas enter the loop at `spell-plan`. Concept stage is pre-loop exploration. |
168
+ | Repo routing | Code → code repos. Docs → the docs repo. Prototypes → Prototypes repo. |
169
+ | Repo governance | Repo creation is human-only. Prototypes repo is a single shared repo, not per-POC. |
170
+ | Feature folders | Feature planning artifacts live in the target code repo under `features/`. |
171
+ | `ventures/<name>/` | Business-level docs for shipped products. Ideas that graduate here are fully promoted. |
172
+
173
+ ---
174
+
175
+ ## Quick Reference
176
+
177
+ **I have a new idea:**
178
+ → Create `ventures/<name>/overview.md` with `status: concept`
179
+
180
+ **I want to see it running:**
181
+ → Generate code from the spec, push to `Prototypes/<name>/` with a README linking to the spec
182
+
183
+ **I want to build it for real:**
184
+ → Create a tracker work item, run `spell-plan`, move planning artifacts to target code repo `features/{id}-{slug}/`, update idea status to `promoted`
185
+
186
+ **The idea didn't work out:**
187
+ → Set `status: archived` in the idea frontmatter. Add a note explaining why. Keep forever.
188
+
189
+ **I want to revisit a parked idea:**
190
+ → Set `status: exploring`, update the changelog, and continue refining the spec