@plainconceptsplatform/agent-harness 3.2.0 → 3.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.
Files changed (141) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +454 -452
  3. package/cli/commands/join.js +259 -259
  4. package/cli/commands/migrate.js +310 -310
  5. package/cli/commands/shared.js +27 -27
  6. package/cli/commands/single.js +79 -79
  7. package/cli/commands/update.js +121 -121
  8. package/cli/commands/wizard.js +134 -134
  9. package/cli/fragments/archive/az.md +97 -97
  10. package/cli/fragments/archive/gh.md +96 -96
  11. package/cli/fragments/archive/gl.md +96 -96
  12. package/cli/fragments/archive/none.md +75 -75
  13. package/cli/fragments/guardrails/codegraph.md +5 -5
  14. package/cli/fragments/guardrails/humanizer.md +4 -4
  15. package/cli/fragments/guardrails/memory.md +4 -4
  16. package/cli/fragments/guardrails/rtk.md +3 -3
  17. package/cli/fragments/guardrails/simple-english.md +4 -4
  18. package/cli/fragments/ops-backlog/az.md +28 -28
  19. package/cli/fragments/ops-backlog/gh.md +28 -28
  20. package/cli/fragments/ops-backlog/jira.md +28 -28
  21. package/cli/fragments/ops-review/az.md +62 -62
  22. package/cli/fragments/ops-review/gh.md +51 -51
  23. package/cli/fragments/ops-review/gl.md +55 -55
  24. package/cli/fragments/ops-ship/az.md +81 -81
  25. package/cli/fragments/ops-ship/gh.md +67 -67
  26. package/cli/fragments/ops-ship/gl.md +84 -84
  27. package/cli/index.js +116 -116
  28. package/cli/presets/agents-content.json +34 -34
  29. package/cli/presets/browser.json +10 -10
  30. package/cli/presets/clean.json +21 -21
  31. package/cli/presets/models.json +68 -68
  32. package/cli/presets/optimization.json +32 -32
  33. package/cli/presets/platforms.json +76 -76
  34. package/cli/presets/source.json +23 -23
  35. package/cli/steps/browser/index.js +48 -48
  36. package/cli/steps/clean/index.js +120 -120
  37. package/cli/steps/copy/agents.js +120 -120
  38. package/cli/steps/copy/commands.js +79 -79
  39. package/cli/steps/copy/fullstack-engineer.js +89 -89
  40. package/cli/steps/copy/index.js +88 -88
  41. package/cli/steps/copy/opencode-json.js +324 -324
  42. package/cli/steps/copy/skills.js +316 -307
  43. package/cli/steps/metadata/index.js +115 -115
  44. package/cli/steps/models/format.js +88 -88
  45. package/cli/steps/models/index.js +64 -64
  46. package/cli/steps/models/write.js +38 -38
  47. package/cli/steps/openspec/index.js +136 -136
  48. package/cli/steps/optimization/codegraph.js +141 -127
  49. package/cli/steps/optimization/detect.js +66 -66
  50. package/cli/steps/optimization/humanizer.js +17 -17
  51. package/cli/steps/optimization/index.js +158 -158
  52. package/cli/steps/optimization/memory.js +91 -88
  53. package/cli/steps/optimization/patch-guardrails.js +111 -111
  54. package/cli/steps/optimization/simple-english.js +17 -17
  55. package/cli/steps/optimization/skills-lock.js +30 -30
  56. package/cli/steps/platform/index.js +109 -109
  57. package/cli/steps/source/index.js +123 -123
  58. package/cli/utils/agent-color.js +111 -111
  59. package/cli/utils/copy.js +134 -134
  60. package/cli/utils/exec-spinner.js +47 -47
  61. package/cli/utils/exec.js +134 -134
  62. package/cli/utils/legacy-check.js +30 -30
  63. package/cli/utils/models-cache.js +58 -58
  64. package/cli/utils/models-pricing.js +42 -42
  65. package/cli/utils/paths.js +80 -80
  66. package/cli/utils/process.js +3 -3
  67. package/cli/utils/terminal.js +6 -6
  68. package/cli/utils/update-manifest.js +75 -75
  69. package/harness/.opencode/_gitignore +9 -9
  70. package/harness/.opencode/commands/init.md +5 -5
  71. package/harness/.opencode/commands/make-architecture.md +5 -5
  72. package/harness/.opencode/commands/make-design.md +5 -5
  73. package/harness/.opencode/commands/make-engineer.md +5 -5
  74. package/harness/.opencode/commands/make-guardrails.md +5 -5
  75. package/harness/.opencode/commands/make-user-model.md +5 -5
  76. package/harness/.opencode/commands/ops-backlog.md +10 -10
  77. package/harness/.opencode/commands/ops-review.md +8 -8
  78. package/harness/.opencode/commands/ops-ship.md +9 -9
  79. package/harness/.opencode/commands/plan-apply.md +9 -9
  80. package/harness/.opencode/commands/plan-archive.md +5 -5
  81. package/harness/.opencode/commands/plan-explore.md +9 -9
  82. package/harness/.opencode/commands/plan-goal.md +5 -5
  83. package/harness/.opencode/commands/plan-propose.md +9 -9
  84. package/harness/.opencode/commands/plan-quick.md +5 -5
  85. package/harness/.opencode/commands/plan-story.md +9 -9
  86. package/harness/.opencode/commands/repo-audit.md +5 -5
  87. package/harness/.opencode/commands/repo-help.md +5 -5
  88. package/harness/.opencode/commands/repo-initialize.md +5 -5
  89. package/harness/.opencode/commands/repo-onboard.md +5 -5
  90. package/harness/.opencode/commands/repo-verify.md +5 -5
  91. package/harness/.opencode/package.json +5 -5
  92. package/harness/.opencode/plugins/pc-subagent-monitor.js +184 -184
  93. package/harness/.opencode/plugins/pc-subagent-tiers.js +354 -354
  94. package/harness/.opencode/plugins/pc-system-reminders.js +386 -386
  95. package/harness/.opencode/scripts/check-diff.mjs +26 -7
  96. package/harness/.opencode/scripts/code-rules.mjs +288 -280
  97. package/harness/AGENTS.md +49 -49
  98. package/harness/ARCHITECTURE.md +13 -13
  99. package/harness/DESIGN.md +13 -13
  100. package/harness/opencode.jsonc +36 -36
  101. package/harness/openspec/config.yaml +20 -20
  102. package/harness/skills-lock.json +17 -17
  103. package/package.json +14 -12
  104. package/skills/README.md +18 -18
  105. package/skills/agent-harness-cli/SKILL.md +86 -86
  106. package/skills/browser-automation/SKILL.md +72 -72
  107. package/skills/pc-guardrails-project/SKILL.md +8 -8
  108. package/skills/pc-make-architecture/SKILL.md +32 -32
  109. package/skills/pc-make-architecture/structure-template.md +64 -64
  110. package/skills/pc-make-design/SKILL.md +45 -45
  111. package/skills/pc-make-engineer/SKILL.md +59 -59
  112. package/skills/pc-make-engineer/signal-mapping.md +53 -53
  113. package/skills/pc-make-engineer/template.md +36 -36
  114. package/skills/pc-make-guardrails/SKILL.md +44 -44
  115. package/skills/pc-make-guardrails/category-reference.md +112 -112
  116. package/skills/pc-make-merge-risk-assess/SKILL.md +70 -70
  117. package/skills/pc-make-merge-risk-assess/category-reference.md +114 -114
  118. package/skills/pc-make-user-model/SKILL.md +56 -56
  119. package/skills/pc-ops-ship/SKILL.md +22 -18
  120. package/skills/pc-plan-apply/SKILL.md +86 -86
  121. package/skills/pc-plan-apply/simple-mode.md +21 -21
  122. package/skills/pc-plan-archive/SKILL.md +66 -66
  123. package/skills/pc-plan-explore/SKILL.md +21 -21
  124. package/skills/pc-plan-goal/SKILL.md +91 -91
  125. package/skills/pc-plan-goal/branching.md +39 -39
  126. package/skills/pc-plan-goal/failure-policy.md +30 -30
  127. package/skills/pc-plan-goal/output-mode.md +10 -10
  128. package/skills/pc-plan-goal/output.md +71 -71
  129. package/skills/pc-plan-propose/SKILL.md +125 -125
  130. package/skills/pc-plan-propose/task-annotation.md +39 -39
  131. package/skills/pc-plan-quick/SKILL.md +46 -46
  132. package/skills/pc-plan-story/SKILL.md +93 -93
  133. package/skills/pc-repo-audit/SKILL.md +44 -44
  134. package/skills/pc-repo-help/SKILL.md +87 -87
  135. package/skills/pc-repo-initialize/SKILL.md +119 -119
  136. package/skills/pc-repo-onboard/SKILL.md +32 -32
  137. package/skills/pc-repo-verify/SKILL.md +150 -150
  138. package/skills/pc-userstory-az/SKILL.md +71 -71
  139. package/skills/pc-userstory-browser/SKILL.md +64 -64
  140. package/skills/pc-userstory-gh/SKILL.md +63 -63
  141. package/skills/pc-userstory-jira/SKILL.md +74 -74
@@ -1,96 +1,96 @@
1
- 2. **Find the oldest change with a completed MR**
2
-
3
- List unarchived changes (top-level only, excludes `archive/`):
4
-
5
- ```bash
6
- find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
7
- ```
8
-
9
- If empty, report a blocker and stop.
10
-
11
- List completed merge requests:
12
-
13
- ```bash
14
- glab mr list --repo {owner}/{repo} --merged --output json --jq 'sort_by(.merged_at) | .[] | {name: .title, sourceRefName: .source_branch, mergedAt: .merged_at, mergeRequestId: .iid}'
15
- ```
16
-
17
- Match each change to a completed MR using its ID and slug as search hints:
18
- - No match → skip (record as blocked: `no merged MR found`).
19
- - One match → eligible.
20
- - Multiple matches → ask the user which MR belongs to that change.
21
-
22
- If nothing is eligible, report a blocker and stop. Otherwise select the eligible change with the **oldest** MR `merged_at` as the candidate.
23
-
24
- 3. **Confirm the candidate**
25
-
26
- Show the candidate (ID, title, MR ID, merged date) and any blocked changes, then ask:
27
-
28
- ```text
29
- Oldest unarchived merged change found:
30
- ID: {change-id}
31
- Title: {title from resolved MR}
32
- MR ID: {iid}
33
- Merged: {merged_at}
34
-
35
- Proceed with archiving? [yes/no]
36
- ```
37
-
38
- Stop if the user does not confirm.
39
-
40
- 4. **Archive the change**
41
-
42
- ```bash
43
- git checkout -b archive/{change-id}
44
- ```
45
-
46
- Load `@openspec-archive-change` skill and follow it to archive the change.
47
-
48
- 5. **Update docs**
49
-
50
- Compare the archived change's specs against `ARCHITECTURE.md` and `DESIGN.md`. If updates are needed, show them and get user approval before applying.
51
-
52
- 6. **Create the archive MR**
53
-
54
- ```bash
55
- # Stage specific paths only: a shared tree may hold another agent's or a
56
- # person's edits, and -A commits them under this message.
57
- git add openspec/changes/ # plus ARCHITECTURE.md / DESIGN.md if step 5 updated them
58
- git commit -m "archive: {title} ({change-id})"
59
- git push origin archive/{change-id}
60
-
61
- glab mr create \
62
- --repo {owner}/{repo} \
63
- --source-branch "archive/{change-id}" \
64
- --target-branch "$DEFAULT_BRANCH" \
65
- --title "archive: {title} ({change-id})" \
66
- --description "Archive SDD artifacts for {change-id} after merge."
67
- ```
68
-
69
- If work was stashed in step 1, restore it after the MR is created unless the user opts out.
70
-
71
- 7. **Report**
72
-
73
- Display:
74
-
75
- ```text
76
- Archive complete
77
-
78
- Change ID: {change-id}
79
- Title: {title}
80
- Original MR: {original-mr-link}
81
- Archive MR: {archive-mr-link}
82
-
83
- Documentation updates:
84
- - ARCHITECTURE.md: {count} changes applied
85
- - DESIGN.md: {count} changes applied
86
- ```
87
-
88
- ## Rules
89
-
90
- - All OpenSpec paths resolve from `git rev-parse --show-toplevel`. Never use `/openspec/...`.
91
- - Only process top-level directories in `$REPO_ROOT/openspec/changes/`; exclude `archive/`.
92
- - Use change ID and slug only as search hints; do not assume the source branch name.
93
- - The oldest eligible merged change is the only candidate: never ask the user which change to archive (but do ask which MR if multiple match one change).
94
- - Never proceed if the selected MR is not completed.
95
- - Never use browser tools or direct web requests for GitLab. Use `glab` CLI only.
96
- - Never invent or guess MR, branch, or merge metadata.
1
+ 2. **Find the oldest change with a completed MR**
2
+
3
+ List unarchived changes (top-level only, excludes `archive/`):
4
+
5
+ ```bash
6
+ find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
7
+ ```
8
+
9
+ If empty, report a blocker and stop.
10
+
11
+ List completed merge requests:
12
+
13
+ ```bash
14
+ glab mr list --repo {owner}/{repo} --merged --output json --jq 'sort_by(.merged_at) | .[] | {name: .title, sourceRefName: .source_branch, mergedAt: .merged_at, mergeRequestId: .iid}'
15
+ ```
16
+
17
+ Match each change to a completed MR using its ID and slug as search hints:
18
+ - No match → skip (record as blocked: `no merged MR found`).
19
+ - One match → eligible.
20
+ - Multiple matches → ask the user which MR belongs to that change.
21
+
22
+ If nothing is eligible, report a blocker and stop. Otherwise select the eligible change with the **oldest** MR `merged_at` as the candidate.
23
+
24
+ 3. **Confirm the candidate**
25
+
26
+ Show the candidate (ID, title, MR ID, merged date) and any blocked changes, then ask:
27
+
28
+ ```text
29
+ Oldest unarchived merged change found:
30
+ ID: {change-id}
31
+ Title: {title from resolved MR}
32
+ MR ID: {iid}
33
+ Merged: {merged_at}
34
+
35
+ Proceed with archiving? [yes/no]
36
+ ```
37
+
38
+ Stop if the user does not confirm.
39
+
40
+ 4. **Archive the change**
41
+
42
+ ```bash
43
+ git checkout -b archive/{change-id}
44
+ ```
45
+
46
+ Load `@openspec-archive-change` skill and follow it to archive the change.
47
+
48
+ 5. **Update docs**
49
+
50
+ Compare the archived change's specs against `ARCHITECTURE.md` and `DESIGN.md`. If updates are needed, show them and get user approval before applying.
51
+
52
+ 6. **Create the archive MR**
53
+
54
+ ```bash
55
+ # Stage specific paths only: a shared tree may hold another agent's or a
56
+ # person's edits, and -A commits them under this message.
57
+ git add openspec/changes/ # plus ARCHITECTURE.md / DESIGN.md if step 5 updated them
58
+ git commit -m "archive: {title} ({change-id})"
59
+ git push origin archive/{change-id}
60
+
61
+ glab mr create \
62
+ --repo {owner}/{repo} \
63
+ --source-branch "archive/{change-id}" \
64
+ --target-branch "$DEFAULT_BRANCH" \
65
+ --title "archive: {title} ({change-id})" \
66
+ --description "Archive SDD artifacts for {change-id} after merge."
67
+ ```
68
+
69
+ If work was stashed in step 1, restore it after the MR is created unless the user opts out.
70
+
71
+ 7. **Report**
72
+
73
+ Display:
74
+
75
+ ```text
76
+ Archive complete
77
+
78
+ Change ID: {change-id}
79
+ Title: {title}
80
+ Original MR: {original-mr-link}
81
+ Archive MR: {archive-mr-link}
82
+
83
+ Documentation updates:
84
+ - ARCHITECTURE.md: {count} changes applied
85
+ - DESIGN.md: {count} changes applied
86
+ ```
87
+
88
+ ## Rules
89
+
90
+ - All OpenSpec paths resolve from `git rev-parse --show-toplevel`. Never use `/openspec/...`.
91
+ - Only process top-level directories in `$REPO_ROOT/openspec/changes/`; exclude `archive/`.
92
+ - Use change ID and slug only as search hints; do not assume the source branch name.
93
+ - The oldest eligible merged change is the only candidate: never ask the user which change to archive (but do ask which MR if multiple match one change).
94
+ - Never proceed if the selected MR is not completed.
95
+ - Never use browser tools or direct web requests for GitLab. Use `glab` CLI only.
96
+ - Never invent or guess MR, branch, or merge metadata.
@@ -1,75 +1,75 @@
1
- 2. **Find the oldest unarchived change**
2
-
3
- List unarchived changes (top-level only, excludes `archive/`):
4
-
5
- ```bash
6
- find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
7
- ```
8
-
9
- If empty, report a blocker and stop. Otherwise select the **oldest** change (by directory creation/sort order) as the candidate.
10
-
11
- This mode has no platform PR integration, so completion is judged from local state only. Do not look up remote PRs or work items.
12
-
13
- 3. **Confirm the candidate**
14
-
15
- Show the candidate (ID, title) and any other unarchived changes, then ask:
16
-
17
- ```text
18
- Oldest unarchived change found:
19
- ID: {change-id}
20
- Title: {title from proposal.md}
21
-
22
- Proceed with archiving? [yes/no]
23
- ```
24
-
25
- Stop if the user does not confirm.
26
-
27
- 4. **Archive the change**
28
-
29
- ```bash
30
- git checkout -b archive/{change-id}
31
- ```
32
-
33
- Load `@openspec-archive-change` skill and follow it to archive the change.
34
-
35
- 5. **Update docs**
36
-
37
- Compare the archived change's specs against `ARCHITECTURE.md` and `DESIGN.md`. If updates are needed, show them and get user approval before applying.
38
-
39
- 6. **Commit the archive**
40
-
41
- ```bash
42
- # Stage specific paths only: a shared tree may hold another agent's or a
43
- # person's edits, and -A commits them under this message.
44
- git add openspec/changes/ # plus ARCHITECTURE.md / DESIGN.md if step 5 updated them
45
- git commit -m "archive: {title} ({change-id})"
46
- ```
47
-
48
- No PR is created in this mode. Leave the `archive/{change-id}` branch for the user to merge or push manually if they choose.
49
-
50
- If work was stashed in step 1, restore it after the commit unless the user opts out.
51
-
52
- 7. **Report**
53
-
54
- Display:
55
-
56
- ```text
57
- Archive complete
58
-
59
- Change ID: {change-id}
60
- Title: {title}
61
- Archive branch: archive/{change-id}
62
-
63
- Documentation updates:
64
- - ARCHITECTURE.md: {count} changes applied
65
- - DESIGN.md: {count} changes applied
66
- ```
67
-
68
- ## Rules
69
-
70
- - All OpenSpec paths resolve from `git rev-parse --show-toplevel`. Never use `/openspec/...`.
71
- - Only process top-level directories in `$REPO_ROOT/openspec/changes/`; exclude `archive/`.
72
- - Use change ID and slug only as search hints; do not assume the source branch name.
73
- - The oldest unarchived change is the only candidate: never ask the user which change to archive.
74
- - This mode has no GitHub or Azure DevOps integration. Never call `gh` or `az`, and never use browser tools or direct web requests for PR/work-item lookups.
75
- - Never invent or guess PR, branch, or merge metadata.
1
+ 2. **Find the oldest unarchived change**
2
+
3
+ List unarchived changes (top-level only, excludes `archive/`):
4
+
5
+ ```bash
6
+ find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
7
+ ```
8
+
9
+ If empty, report a blocker and stop. Otherwise select the **oldest** change (by directory creation/sort order) as the candidate.
10
+
11
+ This mode has no platform PR integration, so completion is judged from local state only. Do not look up remote PRs or work items.
12
+
13
+ 3. **Confirm the candidate**
14
+
15
+ Show the candidate (ID, title) and any other unarchived changes, then ask:
16
+
17
+ ```text
18
+ Oldest unarchived change found:
19
+ ID: {change-id}
20
+ Title: {title from proposal.md}
21
+
22
+ Proceed with archiving? [yes/no]
23
+ ```
24
+
25
+ Stop if the user does not confirm.
26
+
27
+ 4. **Archive the change**
28
+
29
+ ```bash
30
+ git checkout -b archive/{change-id}
31
+ ```
32
+
33
+ Load `@openspec-archive-change` skill and follow it to archive the change.
34
+
35
+ 5. **Update docs**
36
+
37
+ Compare the archived change's specs against `ARCHITECTURE.md` and `DESIGN.md`. If updates are needed, show them and get user approval before applying.
38
+
39
+ 6. **Commit the archive**
40
+
41
+ ```bash
42
+ # Stage specific paths only: a shared tree may hold another agent's or a
43
+ # person's edits, and -A commits them under this message.
44
+ git add openspec/changes/ # plus ARCHITECTURE.md / DESIGN.md if step 5 updated them
45
+ git commit -m "archive: {title} ({change-id})"
46
+ ```
47
+
48
+ No PR is created in this mode. Leave the `archive/{change-id}` branch for the user to merge or push manually if they choose.
49
+
50
+ If work was stashed in step 1, restore it after the commit unless the user opts out.
51
+
52
+ 7. **Report**
53
+
54
+ Display:
55
+
56
+ ```text
57
+ Archive complete
58
+
59
+ Change ID: {change-id}
60
+ Title: {title}
61
+ Archive branch: archive/{change-id}
62
+
63
+ Documentation updates:
64
+ - ARCHITECTURE.md: {count} changes applied
65
+ - DESIGN.md: {count} changes applied
66
+ ```
67
+
68
+ ## Rules
69
+
70
+ - All OpenSpec paths resolve from `git rev-parse --show-toplevel`. Never use `/openspec/...`.
71
+ - Only process top-level directories in `$REPO_ROOT/openspec/changes/`; exclude `archive/`.
72
+ - Use change ID and slug only as search hints; do not assume the source branch name.
73
+ - The oldest unarchived change is the only candidate: never ask the user which change to archive.
74
+ - This mode has no GitHub or Azure DevOps integration. Never call `gh` or `az`, and never use browser tools or direct web requests for PR/work-item lookups.
75
+ - Never invent or guess PR, branch, or merge metadata.
@@ -1,5 +1,5 @@
1
- ## CodeGraph
2
-
3
- - `codegraph_explore` replaces grep, glob and read for anything indexed: one call returns the relevant symbols' verbatim, line-numbered source plus the call paths between them, where finding the same thing by hand takes a dozen. Give it a symbol name, a file path, or a plain question.
4
- - Fall back to grep, glob and read when it returns nothing, or for what it does not index: config files, plain-text docs, `.env` patterns, raw string searches. Say that it returned nothing when you do.
5
- - It is an MCP server, not a CLI. Never run `codegraph` in bash.
1
+ ## CodeGraph
2
+
3
+ - `codegraph_explore` replaces grep, glob and read for anything indexed: one call returns the relevant symbols' verbatim, line-numbered source plus the call paths between them, where finding the same thing by hand takes a dozen. Give it a symbol name, a file path, or a plain question.
4
+ - Fall back to grep, glob and read when it returns nothing, or for what it does not index: config files, plain-text docs, `.env` patterns, raw string searches. Say that it returned nothing when you do.
5
+ - It is an MCP server, not a CLI. Never run `codegraph` in bash.
@@ -1,4 +1,4 @@
1
- ## Humanizer (optimization skill)
2
-
3
- - Load `skill("humanizer")` before writing prose (commit messages, PR descriptions, docs, proposals); unhumanized prose reads as machine-written. Editing, shell and spawning stay blocked until it is loaded (pc-system-reminders).
4
- - Never apply it to code, config files, or terminal output: prose only.
1
+ ## Humanizer (optimization skill)
2
+
3
+ - Load `skill("humanizer")` before writing prose (commit messages, PR descriptions, docs, proposals); unhumanized prose reads as machine-written. Editing, shell and spawning stay blocked until it is loaded (pc-system-reminders).
4
+ - Never apply it to code, config files, or terminal output: prose only.
@@ -1,4 +1,4 @@
1
- ## Agentmemory
2
-
3
- - Cross-session context lives in the agentmemory MCP tools: `memory_smart_search` for prior decisions before working somewhere unfamiliar, `memory_save` for architecture decisions and anything the next agent will need, plus `memory_sessions` and `memory_governance_delete`.
4
- - It is an MCP server, not a CLI. Never run `agentmemory` in bash; start it with `agentmemory` in a separate terminal and use the tools.
1
+ ## Agentmemory
2
+
3
+ - Cross-session context lives in the agentmemory MCP tools: `memory_smart_search` for prior decisions before working somewhere unfamiliar, `memory_save` for architecture decisions and anything the next agent will need, plus `memory_sessions` and `memory_governance_delete`.
4
+ - It is an MCP server, not a CLI. Never run `agentmemory` in bash; start it with `agentmemory` in a separate terminal and use the tools.
@@ -1,3 +1,3 @@
1
- ## RTK
2
-
3
- - Prefix CLI commands with `rtk` (`rtk git diff`, `rtk pnpm test`); it strips the output down to what matters. Read-only commands like `cat`, `ls` and `Get-Content` are exempt.
1
+ ## RTK
2
+
3
+ - Prefix CLI commands with `rtk` (`rtk git diff`, `rtk pnpm test`); it strips the output down to what matters. Read-only commands like `cat`, `ls` and `Get-Content` are exempt.
@@ -1,4 +1,4 @@
1
- ## Simple English (optimization skill)
2
-
3
- - Apply Simplified Technical English to all prose: `skill("simple-english")`. Editing, shell and spawning stay blocked until it is loaded (pc-system-reminders).
4
- - Keep code blocks, identifiers, CLI commands, file paths, quoted errors, and product names exact.
1
+ ## Simple English (optimization skill)
2
+
3
+ - Apply Simplified Technical English to all prose: `skill("simple-english")`. Editing, shell and spawning stay blocked until it is loaded (pc-system-reminders).
4
+ - Keep code blocks, identifiers, CLI commands, file paths, quoted errors, and product names exact.
@@ -1,29 +1,29 @@
1
- Azure DevOps data comes from the `az` CLI; a page fetch of dev.azure.com is denied (pc-system-reminders). If `az` is unavailable, report it as a blocker.
2
-
3
- ---
4
-
5
- ### Step 1: Parse input
6
-
7
- `$ARGUMENTS` is the work item title/description. If it contains a title and body separated by a newline or `---`, split them. Otherwise use the full text as the title with an empty body.
8
-
9
- ### Step 2: Create work item
10
-
11
- ```bash
12
- az boards work-item create \
13
- --title "{title}" \
14
- --description "{body}" \
15
- --type "User Story"
16
- ```
17
-
18
- ### Step 3: Report
19
-
20
- ```text
21
- Work item created
22
- ID: {id}
23
- Title: {title}
24
- URL: {work-item-url}
25
- ```
26
-
27
- Tell the user: "Use `/plan-propose {work-item-url}` to turn this into a plan."
28
-
1
+ Azure DevOps data comes from the `az` CLI; a page fetch of dev.azure.com is denied (pc-system-reminders). If `az` is unavailable, report it as a blocker.
2
+
3
+ ---
4
+
5
+ ### Step 1: Parse input
6
+
7
+ `$ARGUMENTS` is the work item title/description. If it contains a title and body separated by a newline or `---`, split them. Otherwise use the full text as the title with an empty body.
8
+
9
+ ### Step 2: Create work item
10
+
11
+ ```bash
12
+ az boards work-item create \
13
+ --title "{title}" \
14
+ --description "{body}" \
15
+ --type "User Story"
16
+ ```
17
+
18
+ ### Step 3: Report
19
+
20
+ ```text
21
+ Work item created
22
+ ID: {id}
23
+ Title: {title}
24
+ URL: {work-item-url}
25
+ ```
26
+
27
+ Tell the user: "Use `/plan-propose {work-item-url}` to turn this into a plan."
28
+
29
29
  ---
@@ -1,29 +1,29 @@
1
- GitHub data comes from the `gh` CLI; a page fetch of github.com is denied (pc-system-reminders). If `gh` is unavailable, report it as a blocker. Always pass `--repo {owner}/{repo}` explicitly, never rely on git context to resolve the repo.
2
-
3
- ---
4
-
5
- ### Step 1: Parse input
6
-
7
- `$ARGUMENTS` is the issue title/description. If it contains a title and body separated by a newline or `---`, split them. Otherwise use the full text as the title with an empty body.
8
-
9
- ### Step 2: Create issue
10
-
11
- ```bash
12
- gh issue create \
13
- --repo {owner}/{repo} \
14
- --title "{title}" \
15
- --body "{body}"
16
- ```
17
-
18
- ### Step 3: Report
19
-
20
- ```text
21
- Issue created
22
- URL: {issue-url}
23
- Number: #{number}
24
- Title: {title}
25
- ```
26
-
27
- Tell the user: "Use `/plan-propose {issue-url}` to turn this into a plan."
28
-
1
+ GitHub data comes from the `gh` CLI; a page fetch of github.com is denied (pc-system-reminders). If `gh` is unavailable, report it as a blocker. Always pass `--repo {owner}/{repo}` explicitly, never rely on git context to resolve the repo.
2
+
3
+ ---
4
+
5
+ ### Step 1: Parse input
6
+
7
+ `$ARGUMENTS` is the issue title/description. If it contains a title and body separated by a newline or `---`, split them. Otherwise use the full text as the title with an empty body.
8
+
9
+ ### Step 2: Create issue
10
+
11
+ ```bash
12
+ gh issue create \
13
+ --repo {owner}/{repo} \
14
+ --title "{title}" \
15
+ --body "{body}"
16
+ ```
17
+
18
+ ### Step 3: Report
19
+
20
+ ```text
21
+ Issue created
22
+ URL: {issue-url}
23
+ Number: #{number}
24
+ Title: {title}
25
+ ```
26
+
27
+ Tell the user: "Use `/plan-propose {issue-url}` to turn this into a plan."
28
+
29
29
  ---
@@ -1,29 +1,29 @@
1
- Jira data comes from the `acli` CLI; a page fetch of atlassian.net is denied (pc-system-reminders). If `acli` is unavailable, report it as a blocker.
2
-
3
- ---
4
-
5
- ### Step 1: Parse input
6
-
7
- `$ARGUMENTS` is the issue title/description. If it contains a title and body separated by a newline or `---`, split them. Otherwise use the full text as the title with an empty body.
8
-
9
- ### Step 2: Create issue
10
-
11
- ```bash
12
- acli jira issue create \
13
- --summary "{title}" \
14
- --description "{body}" \
15
- --type "Story"
16
- ```
17
-
18
- ### Step 3: Report
19
-
20
- ```text
21
- Issue created
22
- Key: {key}
23
- Title: {title}
24
- URL: {issue-url}
25
- ```
26
-
27
- Tell the user: "Use `/plan-propose {issue-url}` to turn this into a plan."
28
-
1
+ Jira data comes from the `acli` CLI; a page fetch of atlassian.net is denied (pc-system-reminders). If `acli` is unavailable, report it as a blocker.
2
+
3
+ ---
4
+
5
+ ### Step 1: Parse input
6
+
7
+ `$ARGUMENTS` is the issue title/description. If it contains a title and body separated by a newline or `---`, split them. Otherwise use the full text as the title with an empty body.
8
+
9
+ ### Step 2: Create issue
10
+
11
+ ```bash
12
+ acli jira issue create \
13
+ --summary "{title}" \
14
+ --description "{body}" \
15
+ --type "Story"
16
+ ```
17
+
18
+ ### Step 3: Report
19
+
20
+ ```text
21
+ Issue created
22
+ Key: {key}
23
+ Title: {title}
24
+ URL: {issue-url}
25
+ ```
26
+
27
+ Tell the user: "Use `/plan-propose {issue-url}` to turn this into a plan."
28
+
29
29
  ---