@karmaniverous/jeeves 0.5.12 → 0.6.0-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/README.md +245 -83
- package/content/agents-section.md +10 -18
- package/dist/cli/jeeves/index.js +3166 -1856
- package/dist/cli/service/index.js +11 -130
- package/dist/index.d.ts +409 -763
- package/dist/index.js +1508 -4166
- package/package.json +32 -30
- package/content/skills/coding.md +0 -149
- package/content/skills/jeeves.md +0 -122
- package/content/skills/operations.md +0 -125
- package/content/skills/playbooks.md +0 -75
- package/content/skills/slack-bot-provisioner.md +0 -57
- package/content/templates/spec-to-code-guide.md +0 -250
- package/content/templates/spec.md +0 -177
- package/content/tools-platform.md +0 -102
- package/dist/cli/plugin/index.js +0 -1904
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
# Spec-to-Code Development Practice
|
|
2
|
-
|
|
3
|
-
This document defines how developer and AI assistant collaborate to design, build, and ship software using the spec-driven process. It is the authoritative reference for the iterative development practice used across all Jeeves platform components.
|
|
4
|
-
|
|
5
|
-
## 1. The Spec Format
|
|
6
|
-
|
|
7
|
-
Every product has a single spec file (`spec.md`) that serves as the source of truth for what exists, what's being built, and what's been decided.
|
|
8
|
-
|
|
9
|
-
### Section Reference
|
|
10
|
-
|
|
11
|
-
| Section | Purpose | Mutability |
|
|
12
|
-
|---------|---------|------------|
|
|
13
|
-
| **Overview** | What it is, what it isn't, boundaries | Stable after v1 |
|
|
14
|
-
| **Vision** | Architecture, component relationships | Evolves slowly |
|
|
15
|
-
| **Current Version** | What's shipped and working | **Locked** during Next Version design |
|
|
16
|
-
| **Next Version** | Active design space — scope, architecture, decisions, dev plan | Active |
|
|
17
|
-
| **Backlog** | Future work candidates | Append-only between versions |
|
|
18
|
-
| **Open Questions** | Unresolved issues | Resolve inline, don't delete |
|
|
19
|
-
| **Superseded Documents** | Historical record | Append-only |
|
|
20
|
-
|
|
21
|
-
### Locking Discipline
|
|
22
|
-
|
|
23
|
-
- **Current Version** is frozen while Next Version is in progress. It reflects reality, not aspirations.
|
|
24
|
-
- **Design Decisions** are append-only. Once recorded, a decision is immutable. To revise, add a new decision that supersedes the old one and cross-reference both.
|
|
25
|
-
- **Dev Plan tasks** move from Incomplete to Complete. They are not deleted or renumbered.
|
|
26
|
-
|
|
27
|
-
### Decision Format
|
|
28
|
-
|
|
29
|
-
Decisions are numbered sequentially and never reordered:
|
|
30
|
-
|
|
31
|
-
```markdown
|
|
32
|
-
#### Decision N: {Title}
|
|
33
|
-
|
|
34
|
-
{Description of the decision, rationale, alternatives considered, and consequences.
|
|
35
|
-
Include enough context that someone reading this six months later understands WHY,
|
|
36
|
-
not just WHAT.}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Key principles:
|
|
40
|
-
- **Append-only.** New decisions get the next number. Existing decisions are never edited.
|
|
41
|
-
- **Supersession.** If Decision 5 replaces Decision 2, Decision 5 says "Supersedes Decision 2" and Decision 2 gets a note: "Superseded by Decision 5."
|
|
42
|
-
- **Rationale is mandatory.** A decision without rationale is just an opinion. Include what was considered and why this path was chosen.
|
|
43
|
-
|
|
44
|
-
## 2. The 7-Stage Iterative Process
|
|
45
|
-
|
|
46
|
-
### Stage 1: High-Level Design
|
|
47
|
-
|
|
48
|
-
**Goal:** Establish scope, architecture, and key design decisions for the next version.
|
|
49
|
-
|
|
50
|
-
**Activities:**
|
|
51
|
-
- Define what's in scope and what's explicitly out
|
|
52
|
-
- Draft architecture (package structure, dependency model, key interfaces)
|
|
53
|
-
- Record initial design decisions
|
|
54
|
-
- Identify open questions
|
|
55
|
-
|
|
56
|
-
**Output:** A populated Next Version section with Scope, Architecture, initial Decisions, and a skeletal Dev Plan.
|
|
57
|
-
|
|
58
|
-
**Who drives:** Developer sets direction; assistant drafts, proposes, and challenges.
|
|
59
|
-
|
|
60
|
-
### Stage 2: Detailed Design & Dev Plan
|
|
61
|
-
|
|
62
|
-
**Goal:** Break the architecture into concrete, sequenced tasks with explicit dependencies.
|
|
63
|
-
|
|
64
|
-
**Activities:**
|
|
65
|
-
- Decompose architecture into implementable tasks
|
|
66
|
-
- Identify dependencies between tasks (which must complete before which)
|
|
67
|
-
- Estimate complexity and sequence for optimal flow
|
|
68
|
-
- Resolve open questions that block task definition
|
|
69
|
-
|
|
70
|
-
**Output:** A complete Dev Plan (Incomplete table) with numbered tasks and dependency chains.
|
|
71
|
-
|
|
72
|
-
**Convergence signal:** Every architectural element maps to at least one task. Every task has clear inputs and outputs. No circular dependencies.
|
|
73
|
-
|
|
74
|
-
### Stage 3: Implementation
|
|
75
|
-
|
|
76
|
-
**Goal:** Execute the dev plan, task by task.
|
|
77
|
-
|
|
78
|
-
**Activities:**
|
|
79
|
-
- Work through tasks in dependency order
|
|
80
|
-
- For each task: branch, implement, test, commit, push
|
|
81
|
-
- Record any new decisions discovered during implementation
|
|
82
|
-
- Move completed tasks from Incomplete to Complete
|
|
83
|
-
|
|
84
|
-
**Workflow per task:**
|
|
85
|
-
1. Confirm task scope and acceptance criteria
|
|
86
|
-
2. Create branch (if not already on a feature branch)
|
|
87
|
-
3. Implement with tests
|
|
88
|
-
4. Run all quality checks (lint, typecheck, test)
|
|
89
|
-
5. Commit with meaningful message referencing the task number
|
|
90
|
-
6. Push immediately
|
|
91
|
-
|
|
92
|
-
**Output:** Working code, passing tests, updated Dev Plan.
|
|
93
|
-
|
|
94
|
-
### Stage 4: Integration & Verification
|
|
95
|
-
|
|
96
|
-
**Goal:** Verify that the implemented code meets the spec's verification checklist.
|
|
97
|
-
|
|
98
|
-
**Activities:**
|
|
99
|
-
- Run the full verification checklist from the spec
|
|
100
|
-
- Fix any failures (new tasks if needed)
|
|
101
|
-
- Integration testing across component boundaries
|
|
102
|
-
- Performance and edge-case validation
|
|
103
|
-
|
|
104
|
-
**Output:** All checklist items passing. Any new issues tracked as tasks.
|
|
105
|
-
|
|
106
|
-
### Stage 5: Documentation & Content
|
|
107
|
-
|
|
108
|
-
**Goal:** Ensure all documentation reflects the implemented reality.
|
|
109
|
-
|
|
110
|
-
**Activities:**
|
|
111
|
-
- Update README, CHANGELOG, API docs
|
|
112
|
-
- Verify that managed content (TOOLS.md sections, skills) reflects new capabilities
|
|
113
|
-
- Update spec to reflect any implementation-time decisions
|
|
114
|
-
|
|
115
|
-
**Output:** Documentation that matches code. No stale references.
|
|
116
|
-
|
|
117
|
-
### Stage 6: Release
|
|
118
|
-
|
|
119
|
-
**Goal:** Ship the version.
|
|
120
|
-
|
|
121
|
-
**Activities:**
|
|
122
|
-
- Final quality gate pass (Stage 4 checklist, all green)
|
|
123
|
-
- Version bump (semver)
|
|
124
|
-
- Publish to npm (or equivalent)
|
|
125
|
-
- Create GitHub release with changelog
|
|
126
|
-
- Tag the commit
|
|
127
|
-
|
|
128
|
-
**Gate:** Developer explicitly approves the release. The assistant prepares but does not execute without approval (Release & Deployment Gate).
|
|
129
|
-
|
|
130
|
-
### Stage 7: Release Reconciliation
|
|
131
|
-
|
|
132
|
-
**Goal:** Update the spec to reflect the shipped reality and prepare for the next cycle.
|
|
133
|
-
|
|
134
|
-
**Activities:**
|
|
135
|
-
- Archive the spec as `spec-v{version}.md`
|
|
136
|
-
- Update Current Version to match what shipped
|
|
137
|
-
- Promote backlog items to the new Next Version (developer's choice)
|
|
138
|
-
- Close resolved Open Questions
|
|
139
|
-
- Add any new backlog items discovered during implementation
|
|
140
|
-
|
|
141
|
-
**Output:** A clean spec ready for the next design cycle.
|
|
142
|
-
|
|
143
|
-
## 3. Convergence Loop Patterns
|
|
144
|
-
|
|
145
|
-
Design and implementation are not strictly linear. Within each stage, the developer and assistant iterate until convergence.
|
|
146
|
-
|
|
147
|
-
### The Basic Loop
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
Developer states intent
|
|
151
|
-
→ Assistant proposes design/implementation
|
|
152
|
-
→ Developer reviews, challenges, redirects
|
|
153
|
-
→ Assistant revises
|
|
154
|
-
→ Repeat until convergence
|
|
155
|
-
→ Record decision / commit code / move task
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Convergence Signals
|
|
159
|
-
|
|
160
|
-
- **Design convergence:** No more open questions blocking the next stage. All stakeholders agree on the approach.
|
|
161
|
-
- **Implementation convergence:** Tests pass, lint clean, typecheck clean, task acceptance criteria met.
|
|
162
|
-
- **Spec convergence:** Every implemented feature maps to a spec section. Every spec assertion is verifiable.
|
|
163
|
-
|
|
164
|
-
### Anti-Patterns
|
|
165
|
-
|
|
166
|
-
- **Premature implementation:** Writing code before the design is stable. If you're still debating the interface, don't implement it.
|
|
167
|
-
- **Spec drift:** Implementing something different from what the spec says without updating the spec. The spec is the contract — if reality diverges, update the spec.
|
|
168
|
-
- **Decision avoidance:** Leaving open questions open because they're hard. If a question blocks progress, escalate it — don't work around it.
|
|
169
|
-
- **Gold plating:** Adding features not in the current scope. Backlog them. Ship what was planned.
|
|
170
|
-
|
|
171
|
-
## 4. Release Gate Passes
|
|
172
|
-
|
|
173
|
-
Before any release, these gates must pass:
|
|
174
|
-
|
|
175
|
-
### Quality Gate
|
|
176
|
-
|
|
177
|
-
- [ ] All tests pass
|
|
178
|
-
- [ ] Zero lint errors AND zero lint warnings
|
|
179
|
-
- [ ] Zero typecheck errors
|
|
180
|
-
- [ ] All verification checklist items from the spec pass
|
|
181
|
-
|
|
182
|
-
### Documentation Gate
|
|
183
|
-
|
|
184
|
-
- [ ] README reflects current capabilities
|
|
185
|
-
- [ ] CHANGELOG updated with all changes
|
|
186
|
-
- [ ] API documentation current
|
|
187
|
-
- [ ] Breaking changes documented with migration guide
|
|
188
|
-
|
|
189
|
-
### Spec Gate
|
|
190
|
-
|
|
191
|
-
- [ ] Dev Plan: all tasks in Complete
|
|
192
|
-
- [ ] Open Questions: none blocking this release
|
|
193
|
-
- [ ] Verification Checklist: all items checked
|
|
194
|
-
- [ ] Design Decisions: no unrecorded decisions from implementation
|
|
195
|
-
|
|
196
|
-
### Release Gate (requires explicit developer approval)
|
|
197
|
-
|
|
198
|
-
- [ ] Version bumped appropriately (semver)
|
|
199
|
-
- [ ] Published to registry
|
|
200
|
-
- [ ] GitHub release created
|
|
201
|
-
- [ ] Spec archived as `spec-v{version}.md`
|
|
202
|
-
|
|
203
|
-
## 5. Conversation Engine Patterns
|
|
204
|
-
|
|
205
|
-
The spec-to-code process is a conversation between developer and AI assistant. These patterns describe how that conversation works effectively.
|
|
206
|
-
|
|
207
|
-
### The Proposal Pattern
|
|
208
|
-
|
|
209
|
-
The assistant's default mode for design work:
|
|
210
|
-
|
|
211
|
-
1. **Understand** the developer's intent (ask clarifying questions if ambiguous)
|
|
212
|
-
2. **Propose** a concrete design with rationale
|
|
213
|
-
3. **Present** trade-offs and alternatives considered
|
|
214
|
-
4. **Wait** for feedback before proceeding
|
|
215
|
-
|
|
216
|
-
Never assume silence is approval. Explicit confirmation before recording decisions or beginning implementation.
|
|
217
|
-
|
|
218
|
-
### The Checkpoint Pattern
|
|
219
|
-
|
|
220
|
-
At natural boundaries (end of a stage, completion of a complex task, before a risky action):
|
|
221
|
-
|
|
222
|
-
1. **Summarize** what was accomplished
|
|
223
|
-
2. **State** the current position in the process
|
|
224
|
-
3. **Propose** the next step
|
|
225
|
-
4. **Confirm** before proceeding
|
|
226
|
-
|
|
227
|
-
This keeps the developer oriented and prevents runaway work in the wrong direction.
|
|
228
|
-
|
|
229
|
-
### The Discovery Pattern
|
|
230
|
-
|
|
231
|
-
When implementation reveals something the design didn't anticipate:
|
|
232
|
-
|
|
233
|
-
1. **Stop** — don't improvise a solution
|
|
234
|
-
2. **Report** what was discovered and why it matters
|
|
235
|
-
3. **Propose** options (including "do nothing and backlog it")
|
|
236
|
-
4. **Record** the decision if one is made
|
|
237
|
-
5. **Continue** with the updated understanding
|
|
238
|
-
|
|
239
|
-
Discoveries during implementation are normal and valuable. They become design decisions, not silent workarounds.
|
|
240
|
-
|
|
241
|
-
### The Escalation Pattern
|
|
242
|
-
|
|
243
|
-
When the assistant hits something it can't resolve:
|
|
244
|
-
|
|
245
|
-
1. **State** what was attempted
|
|
246
|
-
2. **Explain** why it's blocked
|
|
247
|
-
3. **Present** the options as understood
|
|
248
|
-
4. **Ask** for direction
|
|
249
|
-
|
|
250
|
-
Never go dark. Never guess. The developer always has more context than the assistant about business priorities, political constraints, and acceptable trade-offs.
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "{package-name} — Product Specification"
|
|
3
|
-
date: YYYY-MM-DD
|
|
4
|
-
status: Pre-version (design)
|
|
5
|
-
authors:
|
|
6
|
-
- {author}
|
|
7
|
-
spec-version: "{next-version}"
|
|
8
|
-
previous: "{previous-spec-filename}"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# {package-name} — Product Specification
|
|
12
|
-
|
|
13
|
-
<!-- Spec Discipline:
|
|
14
|
-
1. Current Version stays locked during Next Version design
|
|
15
|
-
2. Next Version is the active design space
|
|
16
|
-
3. When Next Version is implemented: freeze the spec, run the verification checklist
|
|
17
|
-
4. On green: archive spec as spec-v{next}.md, update Current Version to match reality,
|
|
18
|
-
promote backlog items to Next Version
|
|
19
|
-
-->
|
|
20
|
-
|
|
21
|
-
## Spec Discipline
|
|
22
|
-
|
|
23
|
-
1. **Current Version** stays locked during Next Version design
|
|
24
|
-
2. Next Version is the active design space
|
|
25
|
-
3. When Next Version is implemented: freeze the spec, run the checklist
|
|
26
|
-
4. On green: archive spec as `spec-v{next}.md`, update Current Version to match reality, promote backlog items to Next Version
|
|
27
|
-
|
|
28
|
-
## Spec Hygiene
|
|
29
|
-
|
|
30
|
-
- **Frontmatter is mandatory.** Every spec must have `version`, `date`, and `status` fields in the YAML frontmatter. The `status` field tracks the spec lifecycle: `Pre-version (design)`, `In progress`, `Complete`, `Archived`.
|
|
31
|
-
- **Decisions are numbered.** Use sequential numbering (`Decision 1`, `Decision 2`, ...) so they can be cross-referenced from dev plan tasks, other decisions, and external documents. Never renumber — append only.
|
|
32
|
-
- **Dev plan tasks have dependency ordering.** Every task in the dev plan table must have a `Depends On` column referencing prerequisite task numbers (or `—` for none). Tasks should be ordered so dependencies come first. This enforces implementation sequencing and makes parallel work visible.
|
|
33
|
-
|
|
34
|
-
## 1. Overview
|
|
35
|
-
|
|
36
|
-
<!-- What is this package? What problem does it solve? What are its boundaries?
|
|
37
|
-
Include: repo, npm package name, license, CLI command (if any).
|
|
38
|
-
Clearly state what it IS and what it IS NOT. -->
|
|
39
|
-
|
|
40
|
-
**Repo:** `@karmaniverous/{package-name}`
|
|
41
|
-
**npm:** `@karmaniverous/{package-name}`
|
|
42
|
-
**License:** BSD-3-Clause
|
|
43
|
-
|
|
44
|
-
### What {package-name} Is
|
|
45
|
-
|
|
46
|
-
- {primary purpose}
|
|
47
|
-
|
|
48
|
-
### What {package-name} Is Not
|
|
49
|
-
|
|
50
|
-
- {explicit non-goals}
|
|
51
|
-
|
|
52
|
-
## 2. Vision
|
|
53
|
-
|
|
54
|
-
<!-- High-level architecture diagram (PlantUML recommended) and narrative.
|
|
55
|
-
How does this component fit into the broader system?
|
|
56
|
-
Include a component/capability table if relevant. -->
|
|
57
|
-
|
|
58
|
-
### Platform Components
|
|
59
|
-
|
|
60
|
-
<!-- If this is part of a larger platform, list all components with roles and versions. -->
|
|
61
|
-
|
|
62
|
-
| Component | Role | Current Version |
|
|
63
|
-
|-----------|------|-----------------|
|
|
64
|
-
| **{component}** | {role} | {version} |
|
|
65
|
-
|
|
66
|
-
## 3. Current Version
|
|
67
|
-
|
|
68
|
-
<!-- Lock this section once Next Version design begins.
|
|
69
|
-
Document what is currently shipped and working.
|
|
70
|
-
If no version has shipped yet: "No current version. {package-name} has not yet been built." -->
|
|
71
|
-
|
|
72
|
-
No current version. {package-name} has not yet been built.
|
|
73
|
-
|
|
74
|
-
## 4. Next Version: {version}
|
|
75
|
-
|
|
76
|
-
| Package | Version |
|
|
77
|
-
|---------|---------|
|
|
78
|
-
| `@karmaniverous/{package-name}` | {version} |
|
|
79
|
-
|
|
80
|
-
### Scope
|
|
81
|
-
|
|
82
|
-
<!-- What's in scope for this version? What's explicitly out of scope?
|
|
83
|
-
Be precise — this is the contract. -->
|
|
84
|
-
|
|
85
|
-
**In scope:**
|
|
86
|
-
1. {feature}
|
|
87
|
-
|
|
88
|
-
**Out of scope (Phase 2+):**
|
|
89
|
-
- {deferred feature}
|
|
90
|
-
|
|
91
|
-
### Architecture
|
|
92
|
-
|
|
93
|
-
<!-- Detailed technical design. Include:
|
|
94
|
-
- Package/directory structure
|
|
95
|
-
- Dependency model
|
|
96
|
-
- Key interfaces and APIs
|
|
97
|
-
- Data flow diagrams
|
|
98
|
-
- Configuration schema -->
|
|
99
|
-
|
|
100
|
-
### Design Decisions
|
|
101
|
-
|
|
102
|
-
<!-- Numbered for reference. New decisions append; existing decisions are immutable once recorded.
|
|
103
|
-
Format:
|
|
104
|
-
|
|
105
|
-
#### Decision N: {Title}
|
|
106
|
-
|
|
107
|
-
{Description of the decision, rationale, alternatives considered, and consequences.}
|
|
108
|
-
|
|
109
|
-
Each decision is a permanent record. If a decision needs to be revised, add a new decision
|
|
110
|
-
that supersedes it and note the supersession in both. -->
|
|
111
|
-
|
|
112
|
-
#### Decision 1: {Title}
|
|
113
|
-
|
|
114
|
-
{Decision description and rationale.}
|
|
115
|
-
|
|
116
|
-
### Dev Plan
|
|
117
|
-
|
|
118
|
-
<!-- Two tables: Complete and Incomplete. Tasks are numbered for reference.
|
|
119
|
-
Dependencies reference task numbers. Move tasks from Incomplete to Complete
|
|
120
|
-
as they are implemented. -->
|
|
121
|
-
|
|
122
|
-
#### Complete
|
|
123
|
-
|
|
124
|
-
<!-- | # | Task | Depends On |
|
|
125
|
-
|---|------|------------|
|
|
126
|
-
| 1 | {completed task} | — | -->
|
|
127
|
-
|
|
128
|
-
*No tasks completed yet.*
|
|
129
|
-
|
|
130
|
-
#### Incomplete
|
|
131
|
-
|
|
132
|
-
| # | Task | Depends On |
|
|
133
|
-
|---|------|------------|
|
|
134
|
-
| 1 | {task description} | — |
|
|
135
|
-
| 2 | {task description} | 1 |
|
|
136
|
-
|
|
137
|
-
### Release Sequence
|
|
138
|
-
|
|
139
|
-
<!-- Ordered list of release steps. What gets published first?
|
|
140
|
-
What can be parallel? What must be serial? -->
|
|
141
|
-
|
|
142
|
-
1. {step}
|
|
143
|
-
|
|
144
|
-
### Verification Checklist
|
|
145
|
-
|
|
146
|
-
<!-- Concrete, testable assertions that must all pass before the version ships.
|
|
147
|
-
Format: - [ ] {assertion} -->
|
|
148
|
-
|
|
149
|
-
- [ ] {verification item}
|
|
150
|
-
|
|
151
|
-
## 5. Backlog
|
|
152
|
-
|
|
153
|
-
<!-- Future work not scoped to any specific version. Items here are candidates
|
|
154
|
-
for promotion to the next Next Version. Brief descriptions only —
|
|
155
|
-
detailed design happens when promoted. -->
|
|
156
|
-
|
|
157
|
-
- **{Feature name}** — {brief description}
|
|
158
|
-
|
|
159
|
-
## 6. Open Questions
|
|
160
|
-
|
|
161
|
-
<!-- Numbered questions that need resolution. When resolved, strike through
|
|
162
|
-
and note the resolution inline (don't delete — the history is valuable).
|
|
163
|
-
Format:
|
|
164
|
-
1. ~~{Question}~~ Resolved by Decision N: {brief summary}
|
|
165
|
-
2. {Open question still needing resolution} -->
|
|
166
|
-
|
|
167
|
-
1. {question}
|
|
168
|
-
|
|
169
|
-
## 7. Superseded Documents
|
|
170
|
-
|
|
171
|
-
<!-- Documents that this spec replaces or incorporates. Keep for historical reference.
|
|
172
|
-
Format:
|
|
173
|
-
| Document | Date | What It Covered |
|
|
174
|
-
|----------|------|-----------------|
|
|
175
|
-
| {filename} | YYYY-MM-DD | {description} | -->
|
|
176
|
-
|
|
177
|
-
*No superseded documents.*
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
### Tool Hierarchy
|
|
2
|
-
|
|
3
|
-
When searching for information across indexed paths, **always use `watcher_search` before filesystem commands** (`exec`, `grep`, `find`). The semantic index covers the full indexed corpus and surfaces related files you may not have considered.
|
|
4
|
-
|
|
5
|
-
Use `watcher_scan` (no embeddings, no query string) for structural queries: file enumeration, staleness checks, domain listing, counts.
|
|
6
|
-
|
|
7
|
-
Direct filesystem access is for **acting on** search results, not bypassing them.
|
|
8
|
-
|
|
9
|
-
### Shell Scripting
|
|
10
|
-
|
|
11
|
-
Default to `node -e` or `.js` scripts for `exec` calls. PowerShell corrupts multi-byte UTF-8 characters and mangles escaping. Use PowerShell only for Windows service management, registry operations, and similar platform-specific tasks.
|
|
12
|
-
|
|
13
|
-
### File Bridge for External Repos
|
|
14
|
-
|
|
15
|
-
When editing files outside the workspace, use the bridge pattern: copy in → edit the workspace copy → bridge out. Never write temp patch scripts. The workspace is the authoritative working directory.
|
|
16
|
-
|
|
17
|
-
### Gateway Self-Destruction Warning
|
|
18
|
-
|
|
19
|
-
⚠️ Any command that stops the gateway **stops the assistant**. Never run `openclaw gateway stop` or `openclaw gateway restart` without explicit owner approval. When approved, it must be the **absolute last action** — all other work must be complete first, all messages sent, all files saved.
|
|
20
|
-
|
|
21
|
-
### Messaging
|
|
22
|
-
|
|
23
|
-
**Same-channel replies:** Don't use the `message` tool. It fires immediately, jumping ahead of streaming narration. Just write text as your response.
|
|
24
|
-
|
|
25
|
-
**Cross-channel sends:** Use the `message` tool with an explicit `target` to send to a different channel or DM.
|
|
26
|
-
|
|
27
|
-
### Slack File Downloads
|
|
28
|
-
|
|
29
|
-
To download a Slack-hosted file, first try the `message` tool's `download-file` action. If that fails, fall back to a direct HTTP fetch using the bot token:
|
|
30
|
-
|
|
31
|
-
```js
|
|
32
|
-
fetch(url_private_download, {
|
|
33
|
-
headers: { Authorization: 'Bearer ' + botToken },
|
|
34
|
-
});
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
The bot token is at `channels.slack.accounts.default.botToken` in `openclaw.json`.
|
|
38
|
-
|
|
39
|
-
Never tell the user a file can't be downloaded until both methods have been tried.
|
|
40
|
-
|
|
41
|
-
### Plugin Lifecycle
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# Platform bootstrap (content seeding)
|
|
45
|
-
npx @karmaniverous/jeeves install
|
|
46
|
-
|
|
47
|
-
# Component plugin install
|
|
48
|
-
npx @karmaniverous/jeeves-{component}-openclaw install
|
|
49
|
-
|
|
50
|
-
# Component plugin uninstall
|
|
51
|
-
npx @karmaniverous/jeeves-{component}-openclaw uninstall
|
|
52
|
-
|
|
53
|
-
# Platform teardown (remove managed sections)
|
|
54
|
-
npx @karmaniverous/jeeves uninstall
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Never manually edit `~/.openclaw/extensions/`. Always use the CLI commands above.
|
|
58
|
-
|
|
59
|
-
### Reference Templates
|
|
60
|
-
|
|
61
|
-
{{#if templatePath}}
|
|
62
|
-
Reference templates are available at `{{templatePath}}`:
|
|
63
|
-
|
|
64
|
-
| Template | Purpose |
|
|
65
|
-
|----------|---------|
|
|
66
|
-
| `spec.md` | Skeleton for new product specifications — all section headers, decision format, dev plan format |
|
|
67
|
-
| `spec-to-code-guide.md` | The spec-to-code development practice — 7-stage iterative process, convergence loops, release gates |
|
|
68
|
-
|
|
69
|
-
Read these templates when creating new specs, onboarding to new projects, or when asked about the development process.
|
|
70
|
-
{{else}}
|
|
71
|
-
> Reference templates not yet installed. Run `npx @karmaniverous/jeeves install` to seed templates.
|
|
72
|
-
{{/if}}
|
|
73
|
-
|
|
74
|
-
### Post-Upgrade Maintenance
|
|
75
|
-
|
|
76
|
-
After updating OpenClaw (`npm install -g openclaw@latest` or equivalent), reinstall all Jeeves component plugins to repair install state:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
npx @karmaniverous/jeeves install
|
|
80
|
-
npx @karmaniverous/jeeves-runner-openclaw install
|
|
81
|
-
npx @karmaniverous/jeeves-watcher-openclaw install
|
|
82
|
-
npx @karmaniverous/jeeves-server-openclaw install
|
|
83
|
-
npx @karmaniverous/jeeves-meta-openclaw install
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Then restart the gateway. Plugin installers copy dist files and patch config; reinstalling after an OpenClaw update ensures the extensions directory stays consistent.
|
|
87
|
-
|
|
88
|
-
### Source Code Preference
|
|
89
|
-
|
|
90
|
-
{{#if devRepos}}
|
|
91
|
-
When investigating, debugging, or analyzing Jeeves components, always read TypeScript source from dev repos — never compiled `dist/` from the global npm install. Dev repos:
|
|
92
|
-
|
|
93
|
-
| Component | Dev Repo |
|
|
94
|
-
|-----------|----------|
|
|
95
|
-
{{#each devRepos}}
|
|
96
|
-
| {{@key}} | `{{this}}` |
|
|
97
|
-
{{/each}}
|
|
98
|
-
|
|
99
|
-
Built code is minified, harder to reason about, and wastes context. Always `git pull` before analysis.
|
|
100
|
-
{{else}}
|
|
101
|
-
> Dev repo paths not configured. Add `core.devRepos` to `jeeves.config.json` to enable source code preference guidance.
|
|
102
|
-
{{/if}}
|