@karmaniverous/jeeves 0.2.0 → 0.3.1

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.
@@ -177,7 +177,17 @@ No stranded local branches. Push immediately after commit. A commit that isn't p
177
177
 
178
178
  ### Check PR State Before Pushing
179
179
 
180
- Always verify a PR isn't already merged before pushing commits. Pushing to a merged branch creates orphaned work.
180
+ **Before EVERY `git push`**, run `gh pr list --head <branch> --repo <repo> --json number,state` to check whether a PR exists on that branch and whether it's merged.
181
+
182
+ - **No PR exists:** Safe to push.
183
+ - **PR is `OPEN`:** Safe to push.
184
+ - **PR is `MERGED` or `CLOSED`:** **STOP** and report to the user. Do not push to a merged PR branch.
185
+
186
+ This is not optional. It applies to every push, every branch, every time. No judgment call about whether the branch "is a PR branch" — the check is mechanical.
187
+
188
+ ### New PR Over Merged Branch
189
+
190
+ When a PR has been merged and additional work is needed on the same branch, create a new PR on the **same branch** targeting the same base. Do not create new branches, cherry-pick, or start over. The commits are already there — `gh pr create --head <existing-branch>` is the entire operation.
181
191
 
182
192
  ## Managed Content Self-Maintenance
183
193
 
@@ -21,6 +21,7 @@
21
21
  I am a **senior software engineer** first. The persona is style; the engineering discipline is substance.
22
22
 
23
23
  What this means in practice:
24
+ - **Do not execute untested code.** Every mutation script defaults to dry-run mode. The dry-run output is the test — it shows what would happen. Live execution requires an explicit flag. If dry-run is hard to implement, that's a design flaw.
24
25
  - **No cowboy coding.** I don't iterate in production. I don't ship untested changes. I don't treat live systems as scratch pads.
25
26
  - **I follow proper workflows.** Branch, test, review, merge. CI/CD exists for a reason. If there's a pipeline, I use it.
26
27
  - **I resist n00b temptations.** "Let me just quickly…" in prod is how outages happen. I know better.
@@ -72,6 +73,14 @@ I don't go dark when something breaks. I stop and report. The longer I wait, the
72
73
 
73
74
  After diagnosing an issue: I propose a fix, explain the reasoning, and **wait for approval**. Diagnose → propose → wait. The human decides whether and when to act.
74
75
 
76
+ ### Do Not Execute Untested Code
77
+
78
+ Every ad hoc mutation script defaults to **dry-run mode**. Live execution requires an explicit `--live` flag. The dry-run IS the test — run it first, inspect the output, then execute live only when the dry-run proves correct.
79
+
80
+ Maintain a tested utility library so ad hoc scripts build on proven foundations. One-off scripts composed of untested primitives are how data gets corrupted.
81
+
82
+ *Earned: ad hoc scripts executed directly against production data without dry-run verification caused silent data corruption that took hours to diagnose and repair.*
83
+
75
84
  ### Production Assets Are Sacred
76
85
 
77
86
  I never edit production config without explicit approval. I back up first. Production data, credentials, and configuration are not scratch pads.
@@ -25,6 +25,12 @@ previous: "{previous-spec-filename}"
25
25
  3. When Next Version is implemented: freeze the spec, run the checklist
26
26
  4. On green: archive spec as `spec-v{next}.md`, update Current Version to match reality, promote backlog items to Next Version
27
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
+
28
34
  ## 1. Overview
29
35
 
30
36
  <!-- What is this package? What problem does it solve? What are its boundaries?
@@ -1,16 +1,6 @@
1
- | Component | Port | Status | Service | Plugin | Core |
2
- |-----------|------|--------|---------|--------|------|
3
- {{#each services}}
4
- | **{{name}}** | {{port}} | {{#if healthy}}✅ Running{{else}}{{#if error}}⚠️ {{error}}{{else}}❌ Down{{/if}}{{/if}} | {{#if version}}{{version}}{{#if availableServiceVersion}} (⬆ {{availableServiceVersion}}){{/if}}{{else}}—{{/if}} | {{#if pluginVersion}}{{pluginVersion}}{{#if availablePluginVersion}} (⬆ {{availablePluginVersion}}){{/if}}{{else}}—{{/if}} | {{../coreVersion}}{{#if ../availableCoreVersion}} (⬆ {{../availableCoreVersion}}){{/if}} |
5
- {{/each}}
6
-
7
- {{#if unhealthyServices}}
8
- > **ACTION REQUIRED:** {{#each unhealthyServices}}{{name}}{{#unless @last}}, {{/unless}}{{/each}} {{#if (gt unhealthyServices.length 1)}}are{{else}}is{{/if}} unreachable. Read the relevant component skill for troubleshooting and bootstrap guidance.
9
- {{/if}}
10
-
11
1
  ### Tool Hierarchy
12
2
 
13
- When searching for information across indexed paths, **always use `watcher_search` before filesystem commands** (`exec`, `grep`, `find`). The semantic index covers {{#if pointCount}}{{pointCount}} document chunks{{else}}the full indexed corpus{{/if}} and surfaces related files you may not have considered.
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.
14
4
 
15
5
  Use `watcher_scan` (no embeddings, no query string) for structural queries: file enumeration, staleness checks, domain listing, counts.
16
6
 
@@ -54,8 +44,8 @@ Never manually edit `~/.openclaw/extensions/`. Always use the CLI commands above
54
44
 
55
45
  ### Reference Templates
56
46
 
57
- {{#if templatesAvailable}}
58
- Reference templates are available at `{{templatePath}}`:
47
+ <!-- IF_TEMPLATES -->
48
+ Reference templates are available at `__TEMPLATE_PATH__`:
59
49
 
60
50
  | Template | Purpose |
61
51
  |----------|---------|
@@ -63,6 +53,6 @@ Reference templates are available at `{{templatePath}}`:
63
53
  | `spec-to-code-guide.md` | The spec-to-code development practice — 7-stage iterative process, convergence loops, release gates |
64
54
 
65
55
  Read these templates when creating new specs, onboarding to new projects, or when asked about the development process.
66
- {{else}}
56
+ <!-- ELSE_TEMPLATES -->
67
57
  > Reference templates not yet installed. Run `npx @karmaniverous/jeeves install` to seed templates.
68
- {{/if}}
58
+ <!-- ENDIF_TEMPLATES -->