silvermoon 0.1.3-rc.4 → 0.2.0-rc.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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <p align="center">
4
4
  <!-- markdownlint-disable-next-line MD013 -->
5
- <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/assets/silvermoon.svg" width="960" alt="Silvermoon, the artifact spirit of the project">
5
+ <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/assets/silvermoon.svg" width="960" alt="Silvermoon, the artifact spirit of the project">
6
6
  </p>
7
7
 
8
8
  <p align="center">
@@ -17,7 +17,7 @@
17
17
  </p>
18
18
 
19
19
  <p align="center">
20
- English | <a href="https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/README.zh-CN.md">简体中文</a>
20
+ English | <a href="https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/README.zh-CN.md">简体中文</a>
21
21
  </p>
22
22
 
23
23
  # Silvermoon
@@ -32,6 +32,7 @@ branch.
32
32
  ```sh
33
33
  npm install --global silvermoon
34
34
  silvermoon whats-next
35
+ silvermoon list-ideas
35
36
  ```
36
37
 
37
38
  Silvermoon is ecosystem-neutral: the target repository does not need
@@ -57,6 +58,13 @@ These stored values choose the language for project-owned content. To change
57
58
  only one command's built-in output, use `whats-next --language en-US|zh-CN` or
58
59
  `check --language en-US|zh-CN`; the temporary override is never persisted.
59
60
 
61
+ Use `list-ideas` when you only need the current local inventory. It defaults to
62
+ active ideas and supports repeatable `--state`, `--all`, literal `--query`,
63
+ RFC 3339 `--created-since` / `--created-before`, `--sort`, and `--limit`.
64
+ Unlike lifecycle navigation, this read-only query uses the valid worktree
65
+ snapshot without checking branch, upstream, cleanliness, network, or primary
66
+ synchronization.
67
+
60
68
  Then create an idea and let the registered Silvermoon skill guide one safe
61
69
  next action at a time:
62
70
 
@@ -69,27 +77,35 @@ silvermoon whats-next <idea> --language zh-CN
69
77
  Describe the desired world in the generated `Idea.md`, review it, and approve
70
78
  that exact revision. From then on, Silvermoon keeps the goal, implementation,
71
79
  repository state, and real-world result connected. See
72
- [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/getting-started.md) for the complete first workflow.
73
- Default dialogue output uses lightweight Markdown headings for intent,
74
- observation, and next instructions, plus actions and outcomes only when an
75
- operation was attempted. Add `--json` only when a programmatic consumer needs
76
- the `intention / observation / outcomes / instructions` envelope. For
77
- pre-commit validation, run `silvermoon check --staged`: unlike the default
78
- `check` (committed `HEAD`), it checks the index and exits `0` only when the
79
- project snapshot is valid. See the [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/reference.md)
80
- for validation targets and exit codes. Add `--trace <file.trace.jsonl>` to any
81
- command to write paired task and Git timing spans for performance analysis.
82
- If the argument does not end with the exact lowercase `.trace.jsonl` suffix,
80
+ [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/getting-started.md) for the complete first workflow.
81
+ Every command processes one ordered, versioned domain-message stream. Add
82
+ `--json` when a programmatic consumer needs its four deterministic projections:
83
+ `intention`, `observation`, `actions`, and `response`. Actions are side effects
84
+ already attempted; future work belongs only to `response.nextSteps`. Default
85
+ Markdown renders only the self-contained response instead of exposing the
86
+ internal projections. For pre-commit validation, run
87
+ `silvermoon check --staged`: unlike the default `check` (committed `HEAD`), it
88
+ checks the index and exits `0` only when the project snapshot is valid. See the
89
+ [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/reference.md) for validation targets and exit
90
+ codes.
91
+
92
+ Add `--trace <file.trace.jsonl>` to any command to write one schema-versioned
93
+ JSONL timeline. Its `domain` channel contains allowlisted message summaries,
94
+ and its `telemetry` channel contains paired performance spans; both share one
95
+ trace ID and global sequence. Trace output never includes guidance or file
96
+ content, Git arguments/output, environment data, or credentials. If the
97
+ argument does not end with the exact lowercase `.trace.jsonl` suffix,
83
98
  Silvermoon appends it. Repository-local `*.trace.jsonl` files are ignored.
84
- Trace files are created only after the measured command work completes and
85
- never overwrite an existing file.
99
+ Trace files are buffered, created only after command work completes, and never
100
+ overwrite an existing file.
86
101
 
87
102
  Projects may optionally add `.silvermoon/guidance/preparing.md`,
88
103
  `implementing.md`, and `deploying.md`. Silvermoon returns only the current
89
- actionable phase's snapshot-bound, repository-owned Markdown after canonical
90
- instructions; `create-idea` can return preparing guidance. This guidance is
104
+ actionable phase's snapshot-bound, repository-owned Markdown in
105
+ `response.guidance`; `observation.guidance` carries its provenance without
106
+ content. `create-idea` can return preparing guidance. This guidance is
91
107
  additive, never a fourth contract or decision fact, and `check` validates the
92
- complete fixed directory. See [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/core-concepts.md).
108
+ complete fixed directory. See [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/core-concepts.md).
93
109
 
94
110
  ## Why Silvermoon
95
111
 
@@ -119,7 +135,7 @@ sessions, Agents, and hosting platforms.
119
135
  <tr>
120
136
  <td width="160" align="center" valign="top">
121
137
  <!-- markdownlint-disable-next-line MD013 -->
122
- <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/assets/silvermoon-avatar.svg" width="128" alt="Line portrait of Silvermoon, the project's artifact spirit">
138
+ <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/assets/silvermoon-avatar.svg" width="128" alt="Line portrait of Silvermoon, the project's artifact spirit">
123
139
  </td>
124
140
  <td valign="top">
125
141
  Silvermoon is named after a character in <em>A Record of a Mortal's
@@ -167,13 +183,13 @@ the project, not to a fleeting conversation.
167
183
 
168
184
  ## Further Reading
169
185
 
170
- - [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/getting-started.md) — installation, configuration,
186
+ - [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/getting-started.md) — installation, configuration,
171
187
  and the first idea.
172
- - [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/core-concepts.md) — project ownership, the three
188
+ - [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/core-concepts.md) — project ownership, the three
173
189
  worlds, revisions, and decision boundaries.
174
- - [Operating Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/operations.md) — navigation, creation,
190
+ - [Operating Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/operations.md) — navigation, creation,
175
191
  publication, hygiene, and continuation.
176
- - [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/reference.md) — storage, derived state, CLI
192
+ - [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/reference.md) — storage, derived state, CLI
177
193
  reports, validation targets, and schemas.
178
- - [Maintaining Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/maintaining.md) — development checks,
194
+ - [Maintaining Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/maintaining.md) — development checks,
179
195
  documentation ownership, and release guidance.
package/README.zh-CN.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  <p align="center">
4
4
  <!-- markdownlint-disable-next-line MD013 -->
5
- <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/assets/silvermoon.svg" width="960" alt="Silvermoon,项目的器灵">
5
+ <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/assets/silvermoon.svg" width="960" alt="Silvermoon,项目的器灵">
6
6
  </p>
7
7
 
8
8
  <p align="center">
9
- <a href="https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/README.md">English</a> | 简体中文
9
+ <a href="https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/README.md">English</a> | 简体中文
10
10
  </p>
11
11
 
12
12
  # Silvermoon(银月)
@@ -20,6 +20,7 @@ Silvermoon 需要 Node.js 22 或更高版本,并且能够通过 Git 访问仓
20
20
  ```sh
21
21
  npm install --global silvermoon
22
22
  silvermoon whats-next
23
+ silvermoon list-ideas
23
24
  ```
24
25
 
25
26
  Silvermoon 不依赖目标仓库的技术栈:目标项目无需 `package.json`、package manager、
@@ -43,6 +44,12 @@ preferredLanguage: zh-CN
43
44
  `whats-next --language en-US|zh-CN` 或 `check --language en-US|zh-CN`;该临时覆盖
44
45
  不会写入任何配置或 idea。
45
46
 
47
+ 只想查看当前本地 inventory 时使用 `list-ideas`。它默认返回 active ideas,并支持
48
+ 可重复的 `--state`、`--all`、literal `--query`、RFC 3339
49
+ `--created-since` / `--created-before`、`--sort` 和 `--limit`。与 lifecycle
50
+ 导航不同,这个只读查询使用有效的 worktree snapshot,不检查 branch、upstream、
51
+ cleanliness、网络或 primary 同步。
52
+
46
53
  然后创建一个 idea,让已注册的 Silvermoon skill 每次引导一个安全的下一步行动:
47
54
 
48
55
  ```sh
@@ -53,24 +60,29 @@ silvermoon whats-next <idea> --language zh-CN
53
60
 
54
61
  在生成的 `Idea.md` 中描述想要抵达的世界,审阅并批准这个精确 revision。此后,
55
62
  Silvermoon 会让目标、实现、仓库状态与现实结果始终相连。完整的首次工作流见英文
56
- [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/getting-started.md)。
57
- 对话命令默认以轻量 Markdown 标题呈现意图、观察和下一步;只有实际尝试了操作,
58
- 才出现动作与结果段落。程序消费者可使用 `--json` 获取
59
- `intention / observation / outcomes / instructions` envelope。提交前使用
60
- `silvermoon check --staged` 验证 index;无参数 `check` 只验证已提交的 `HEAD`,
61
- 不能替代提交前检查。只有项目快照有效时检查才以退出码 `0` 放行,详见英文
62
- [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/reference.md)。任何命令都可以添加
63
- `--trace <file.trace.jsonl>`,写出用于性能分析的成对任务与 Git 计时 span。参数若
64
- 没有以精确的小写 `.trace.jsonl` 结尾,Silvermoon 会自动追加;repository 内的
65
- `*.trace.jsonl` 会被忽略。trace 文件只在待测命令工作完成后创建,并且绝不覆盖
66
- 已有文件。
63
+ [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/getting-started.md)。
64
+ 每个命令都处理一条有序且带版本的 domain-message stream。程序消费者可使用
65
+ `--json` 获取四个确定性 projection:`intention`、`observation`、`actions` 与
66
+ `response`。`actions` 只记录已经尝试的副作用,未来工作只位于
67
+ `response.nextSteps`。默认 Markdown 只渲染自足的 response,不暴露内部
68
+ projection。提交前使用 `silvermoon check --staged` 验证 index;无参数 `check`
69
+ 只验证已提交的 `HEAD`,不能替代提交前检查。只有项目快照有效时检查才以退出码
70
+ `0` 放行,详见英文 [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/reference.md)。
71
+
72
+ 任何命令都可以添加 `--trace <file.trace.jsonl>`,写出一条 schema-versioned
73
+ JSONL timeline。`domain` channel 保存经过 allowlist 的 message 摘要,
74
+ `telemetry` channel 保存成对 performance span;两者共享同一个 trace ID 和全局
75
+ sequence。Trace 不记录 guidance/文件正文、Git 参数或输出、环境数据或
76
+ credential。参数若没有以精确的小写 `.trace.jsonl` 结尾,Silvermoon 会自动追加;
77
+ repository 内的 `*.trace.jsonl` 会被忽略。trace 文件采用缓冲写入,只在命令工作
78
+ 完成后创建,并且绝不覆盖已有文件。
67
79
 
68
80
  项目可按需添加 `.silvermoon/guidance/preparing.md`、`implementing.md` 与
69
- `deploying.md`。Silvermoon 只会在 canonical instructions 之后返回当前可行动
70
- 阶段中与 snapshot 绑定的 repository-owned Markdown;`create-idea` 可返回
71
- preparing guidance。这些 guidance 只能追加约束,不是第四份 contract 或 decision
72
- fact;`check` 会验证完整的固定目录。详见英文
73
- [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/core-concepts.md)。
81
+ `deploying.md`。Silvermoon 只会在 `response.guidance` 中返回当前可行动阶段里
82
+ 与 snapshot 绑定的 repository-owned Markdown;`observation.guidance` 仅保留
83
+ provenance。`create-idea` 可返回 preparing guidance。这些 guidance 只能追加
84
+ 约束,不是第四份 contract 或 decision fact;`check` 会验证完整的固定目录。详见英文
85
+ [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/core-concepts.md)。
74
86
 
75
87
  ## 为什么需要 Silvermoon
76
88
 
@@ -93,7 +105,7 @@ fact;`check` 会验证完整的固定目录。详见英文
93
105
  <tr>
94
106
  <td width="160" align="center" valign="top">
95
107
  <!-- markdownlint-disable-next-line MD013 -->
96
- <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/assets/silvermoon-avatar.svg" width="128" alt="项目器灵银月的线稿头像">
108
+ <img src="https://cdn.jsdelivr.net/gh/shazhou-ww/silvermoon@fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/assets/silvermoon-avatar.svg" width="128" alt="项目器灵银月的线稿头像">
97
109
  </td>
98
110
  <td valign="top">
99
111
  Silvermoon 得名于《凡人修仙传》中的银月。她来自灵界的银月狼族,是玲珑公主分裂出的
@@ -133,8 +145,8 @@ fact;`check` 会验证完整的固定目录。详见英文
133
145
 
134
146
  ## 延伸阅读
135
147
 
136
- - [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/getting-started.md) — 安装、配置与第一个 idea。
137
- - [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/core-concepts.md) — 项目归属、三重世界、revision 与决策边界。
138
- - [Operating Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/operations.md) — 导航、创建、发布、仓库卫生与持续推进。
139
- - [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/reference.md) — 存储、派生状态、CLI report、验证 target 与 schema。
140
- - [Maintaining Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/ac04b5ced567c6cb34ff02f15a8ebca536f8b1a6/docs/maintaining.md) — 开发检查、文档职责与发布指南。
148
+ - [Getting Started](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/getting-started.md) — 安装、配置与第一个 idea。
149
+ - [Core Concepts](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/core-concepts.md) — 项目归属、三重世界、revision 与决策边界。
150
+ - [Operating Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/operations.md) — 导航、创建、发布、仓库卫生与持续推进。
151
+ - [Technical Reference](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/reference.md) — 存储、派生状态、CLI report、验证 target 与 schema。
152
+ - [Maintaining Silvermoon](https://github.com/shazhou-ww/silvermoon/blob/fcc881a6a5e7b7f2aad283f3b151a4c15fd6f400/docs/maintaining.md) — 开发检查、文档职责与发布指南。
@@ -55,10 +55,25 @@ implementation, acceptance of the deployment, and abandonment. Silvermoon has
55
55
  no mutation command for these decisions and never infers them from prose,
56
56
  checklists, Git activity, or silence.
57
57
 
58
- Agents own continuation. The project skill combines `whats-next`, the world
59
- contracts, the idea ledger, and Git facts to choose one safe action. The ledger
60
- is operational memory: it mirrors stable contract IDs and records completed
61
- work, but a checked item is not approval or acceptance.
58
+ Agents own continuation. The project skill combines `whats-next`,
59
+ `response.nextSteps`, the world contracts, the idea ledger, and Git facts to
60
+ choose one safe action. The ledger is operational memory: it mirrors stable
61
+ contract IDs and records completed work, but a checked item is not approval or
62
+ acceptance.
63
+
64
+ ## Command Event Model
65
+
66
+ A normalized intention starts one ordered, versioned domain-message stream.
67
+ Observation facts are folded by one immutable reducer, while requested and
68
+ finished side effects are paired by action ID into the actions projection.
69
+ The final response is a pure function of intention and internal observation;
70
+ it never reads action history, trace state, clocks, randomness, Git, or the
71
+ filesystem.
72
+
73
+ Every trustworthy JSON result has exactly four top-level projections:
74
+ `intention`, `observation`, `actions`, and `response`. Default Markdown renders
75
+ only `response`. This keeps operational history available to machines without
76
+ making people read an internal execution transcript to find the answer.
62
77
 
63
78
  ## Project Phase Guidance
64
79
 
@@ -69,18 +84,20 @@ phase's file, after higher-priority project and repository readiness checks,
69
84
  and identifies its exact Git blob as `contentRevision`.
70
85
 
71
86
  Phase guidance is additive: it supplements rather than replaces the canonical
72
- skill and CLI instructions. An Agent treats it as inert repository-owned
73
- Markdown and materializes applicable idea-specific requirements into the
74
- current world contract and matching ledger entries. The guidance file is not a
75
- fourth contract, does not change a world revision, records no human decision,
76
- and is not evidence that any work or validation completed.
87
+ skill and `response.nextSteps`. Public observation carries only provenance;
88
+ the self-contained response carries the captured content. An Agent treats it
89
+ as inert repository-owned Markdown and materializes applicable idea-specific
90
+ requirements into the current world contract and matching ledger entries. The
91
+ guidance file is not a fourth contract, does not change a world revision,
92
+ records no human decision, and is not evidence that any work or validation
93
+ completed.
77
94
 
78
95
  ## One Project, Shared Facts
79
96
 
80
97
  `whats-next` first checks local worktree, HEAD, and upstream facts, then fetches
81
98
  the configured remote primary only when local hygiene permits it. Its
82
- observation and instructions report the exact local and remote commits used
83
- for ancestry guidance. Writers use the reported remote commit as the expected
99
+ observation and response report the exact local and remote commits used for
100
+ ancestry guidance. Writers use the reported remote commit as the expected
84
101
  shared tip. If primary moves, they fetch and reobserve rather than replaying a
85
102
  stale decision. This is coordination through ordinary Git, not a distributed
86
103
  lock.
@@ -64,8 +64,9 @@ Each file is optional, repository-owned Markdown for only its named phase.
64
64
  `whats-next <idea>` returns the applicable file only after that actionable
65
65
  phase becomes the highest-priority next action. A successful `create-idea`
66
66
  returns only preparing guidance after local preflight and before relying on
67
- the new scaffold. The report includes the fixed path, exact Git blob
68
- `contentRevision`, and captured content, so consumers must not reread the file.
67
+ the new scaffold. `observation.guidance` includes the fixed path and exact Git
68
+ blob `contentRevision`; `response.guidance` carries that provenance plus the
69
+ captured content, so consumers must not reread the file.
69
70
 
70
71
  Keep each file at most 32 KiB of valid UTF-8 without a BOM or NUL byte, with at
71
72
  least one non-whitespace character. Use regular files and no extra entries in
@@ -114,6 +115,37 @@ the resolved content language and can therefore differ from `outputLanguage`.
114
115
  Without a temporary override, Chinese content tags use `zh-CN` output and all
115
116
  other content tags use the built-in `en-US` output.
116
117
 
118
+ ## Inspect The Local Idea Inventory
119
+
120
+ Use the dedicated read-only query when the question is which ideas exist,
121
+ rather than what lifecycle action comes next:
122
+
123
+ ```sh
124
+ silvermoon list-ideas
125
+ silvermoon list-ideas --state implementing --state deploying
126
+ silvermoon list-ideas --all --query release --sort oldest --limit 20
127
+ silvermoon list-ideas \
128
+ --created-since 2026-09-01T00:00:00Z \
129
+ --created-before 2026-10-01T00:00:00Z
130
+ ```
131
+
132
+ The default set is `preparing`, `implementing`, and `deploying`. Repeated state
133
+ values form a deduplicated union, while text and time filters intersect with
134
+ that set. `active` expands to the default three states; `--all` selects all
135
+ five lifecycle states and cannot be combined with `--state`. Sorting is
136
+ newest-first unless `--sort oldest` is given, and `--limit` is applied only
137
+ after filtering and stable sorting.
138
+
139
+ `list-ideas` validates Git presence, project configuration, the canonical
140
+ skill, and the complete idea layout, then reads the current worktree snapshot.
141
+ It does not inspect cleanliness, branch, upstream, or ancestry and never
142
+ fetches or contacts the configured primary. Staged, unstaged, and untracked
143
+ idea changes are therefore visible when they form a valid snapshot. Invalid
144
+ query arguments fail with exit `2` before repository or trace access; an
145
+ untrusted project or layout exits `1` instead of returning a partial list.
146
+ The command has no temporary `--language` option and uses the project's
147
+ resolved output language.
148
+
117
149
  ## Create The First Idea
118
150
 
119
151
  Run:
@@ -149,13 +181,13 @@ Then ask what comes next with the generated ULID or an exact unique alias:
149
181
  silvermoon whats-next <idea>
150
182
  ```
151
183
 
152
- The default dialogue uses lightweight Markdown headings for intent,
153
- observation, and ordered next instructions; actions and outcomes appear only
154
- when an operation was attempted. Add `--json` only when a programmatic
155
- consumer needs the `intention / observation / outcomes / instructions`
156
- envelope. Execute the applicable instructions in order and run the same
157
- command again only after an expected repository change, an unexpected input
158
- change, or a newly arrived external result.
184
+ Default Markdown renders only the self-contained response. Add `--json` when a
185
+ programmatic consumer needs the complete
186
+ `intention / observation / actions / response` report. Read every problem and
187
+ execute applicable `response.nextSteps` in order; `actions` contains only
188
+ side effects Silvermoon already attempted. Run the same command again only
189
+ after an expected repository change, an unexpected input change, or a newly
190
+ arrived external result.
159
191
 
160
192
  ## Make Decisions Explicit
161
193
 
@@ -11,10 +11,11 @@ The current release mapping is:
11
11
  | --- | --- | --- |
12
12
  | `silvermoon` | `silvermoon` | `.` |
13
13
 
14
- A stable tag such as `npm/silvermoon/v0.1.3` publishes with the npm `latest`
15
- dist-tag. A named prerelease such as `npm/silvermoon/v0.2.0-beta.1` publishes
16
- with the `beta` dist-tag. Numeric-only prerelease channels are intentionally
17
- rejected.
14
+ A stable tag such as `npm/silvermoon/v0.2.0` publishes with the npm `latest`
15
+ dist-tag. A named prerelease such as `npm/silvermoon/v0.2.0-rc.1` publishes
16
+ with the `rc` dist-tag. Numeric-only prerelease channels are intentionally
17
+ rejected. Preparing a manifest candidate does not authorize tag creation or
18
+ publication.
18
19
 
19
20
  ## One-time configuration
20
21
 
@@ -76,12 +77,12 @@ the release namespace.
76
77
  5. Fetch the current primary branch and tags.
77
78
  6. Create the package-specific tag at `origin/main` and push that exact tag.
78
79
 
79
- For `silvermoon@0.1.3`:
80
+ For an explicitly authorized `silvermoon@0.2.0-rc.1` release:
80
81
 
81
82
  ```sh
82
83
  git fetch origin main --tags
83
- git tag npm/silvermoon/v0.1.3 origin/main
84
- git push origin refs/tags/npm/silvermoon/v0.1.3
84
+ git tag npm/silvermoon/v0.2.0-rc.1 origin/main
85
+ git push origin refs/tags/npm/silvermoon/v0.2.0-rc.1
85
86
  ```
86
87
 
87
88
  The tag version must exactly equal [`package.json`](../package.json). The
@@ -20,13 +20,13 @@ uppercase ULID or an exact, unique, case-sensitive alias.
20
20
 
21
21
  The shared observation exposes the resolved content preference as
22
22
  `configuration.preferredLanguage` and the built-in rendering locale as
23
- `outputLanguage`. Instructions use the content preference for world entries,
24
- same-world supporting artifacts, and the ledger. A caller may use
23
+ `outputLanguage`. Response next steps use the content preference for world
24
+ entries, same-world supporting artifacts, and the ledger. A caller may use
25
25
  `--language en-US|zh-CN` to override only Silvermoon-owned output for one
26
26
  `whats-next` invocation. Commands, identifiers, schema fields, protocol
27
27
  markers, and verbatim tool output retain their original form.
28
28
 
29
- Every invocation follows three strict layers. It first checks Git,
29
+ Every `whats-next` invocation follows three strict layers. It first checks Git,
30
30
  configuration compatibility, and `.agents/skills/silvermoon`. It then checks
31
31
  local conflicts, changes, HEAD, and upstream identity before any remote access.
32
32
  Only after those checks pass does it fetch primary, compare ancestry, and
@@ -36,12 +36,48 @@ resets, fast-forwards, or pushes.
36
36
  When a selector resolves to an actionable phase and synchronization is ready,
37
37
  Silvermoon reads only `.silvermoon/guidance/<phase>.md` from the same Git
38
38
  snapshot. Missing guidance preserves the previous report shape. Valid guidance
39
- appears as a separate `observation.guidance` value after canonical
40
- instructions in text output. Invalid current-phase guidance returns a
41
- `phase-guidance-invalid` observation with remediation instead of lifecycle
42
- instructions. Bare navigation, unknown selectors, terminal ideas, and any
39
+ content appears in `response.guidance`, while `observation.guidance` exposes
40
+ only its path, phase, and content revision. Invalid current-phase guidance
41
+ returns a `phase-guidance-invalid` observation with remediation instead of
42
+ lifecycle next steps. Bare navigation, unknown selectors, terminal ideas, and any
43
43
  higher-priority setup, hygiene, fetch, or ancestry block do not read guidance.
44
44
 
45
+ ## Query The Local Inventory
46
+
47
+ Use `list-ideas` for an explicit inventory query that must not choose work or
48
+ perform repository synchronization:
49
+
50
+ ```sh
51
+ silvermoon list-ideas
52
+ silvermoon list-ideas --state active --state completed
53
+ silvermoon list-ideas --all --query documentation
54
+ silvermoon list-ideas --created-since 2026-09-01T00:00:00Z
55
+ silvermoon list-ideas --created-before 2026-10-01T00:00:00Z
56
+ silvermoon list-ideas --sort oldest --limit 25 --json
57
+ ```
58
+
59
+ The command reads one valid local worktree snapshot. It checks the project
60
+ configuration, canonical skill, and complete idea layout, but deliberately
61
+ does not check conflicts, cleanliness, current branch, upstream, primary
62
+ ancestry, or network availability. It never fetches. Filters cannot hide an
63
+ invalid idea; setup or layout failures return a `blocked` four-projection
64
+ report and exit `1`.
65
+
66
+ The default state set is `preparing`, `implementing`, and `deploying`.
67
+ Repeated `--state` values form a deduplicated union, `active` expands to those
68
+ three states, and `--all` selects all five states but conflicts with
69
+ `--state`. Literal case-insensitive `--query` matches ULID, alias, or the first
70
+ level-one heading in `Idea.md`. Creation bounds are RFC 3339 timestamps and use
71
+ `[created-since, created-before)` against UTC time decoded from the ULID.
72
+ `--sort newest|oldest` is stable for same-millisecond IDs, and positive
73
+ `--limit` is applied after filtering and sorting while preserving full
74
+ matched counts.
75
+
76
+ Success uses `observation.state: "ideas-listed"`, records no actions, and
77
+ returns an `idea-list` response without lifecycle instructions. Usage errors
78
+ exit `2` before repository inspection or trace creation. `list-ideas` does not
79
+ accept the temporary `--language` option.
80
+
45
81
  ## Create An Idea
46
82
 
47
83
  Explicit creation uses:
@@ -79,18 +115,17 @@ publication requires a pull request, wait until it reaches primary. Reobserve
79
115
  the exact `idealRevision` after publication; never ask for approval of an
80
116
  unpublished local candidate, and never treat publication as approval.
81
117
 
82
- ## Follow One Observation
118
+ ## Follow One Report
83
119
 
84
- Treat `intention`, `observation`, `outcomes`, and `instructions` as one
85
- immutable dialogue report for `whats-next` and `create-idea`. Default output
86
- uses lightweight Markdown headings and lists for intent, observation, and
87
- next instructions, including actions and outcomes only if an operation was
88
- attempted. `--json` serializes the same model, retaining `outcomes: []` when
89
- none were attempted.
120
+ Treat `intention`, `observation`, `actions`, and `response` as one immutable
121
+ report for every command. Default output renders only `response`; `--json`
122
+ serializes all four projections and retains `actions: []` when no side effect
123
+ was attempted. Actions are historical facts. Future work appears only in
124
+ `response.nextSteps`.
90
125
 
91
126
  Project setup takes precedence over repository synchronization, which takes
92
- precedence over lifecycle work. Instructions include every known remediation
93
- for the current layer in priority order. Large change sets report complete
127
+ precedence over lifecycle work. Response next steps include every known
128
+ remediation for the current layer in priority order. Large change sets report complete
94
129
  counts, bounded path samples, omitted counts, and exact commands for the full
95
130
  diff. Preserve unknown and concurrent work. Never force-push, use
96
131
  `reset --hard`, broadly clean the worktree, or silently rewrite history.
@@ -99,9 +134,10 @@ After an observable change, run `whats-next` again. Do not poll an unchanged
99
134
  observation. When the invocation used `--language`, every generated retry
100
135
  command preserves the same canonical output-language option.
101
136
 
102
- If `observation.guidance` is present, consume that captured content rather than
137
+ If `response.guidance` is present, consume that captured content rather than
103
138
  reading its path again. It is repository-owned additive input. Canonical
104
- instructions and higher-level human or system instructions take precedence.
139
+ `response.nextSteps` and higher-level human or system instructions take
140
+ precedence.
105
141
  Treat guidance as inert Markdown: do not expand
106
142
  templates or includes, follow embedded URLs, or execute snippets. Materialize
107
143
  applicable requirements into the current world contract and matching ledger
@@ -152,11 +188,12 @@ check worktree hygiene, upstream, or ancestry and does not suggest next steps.
152
188
  Without a target it validates committed `HEAD`, not the pending commit.
153
189
  `--worktree` validates the full candidate, while `--staged` validates exactly
154
190
  the index and is the pre-commit hook target. Every target validates all present
155
- phase guidance files and rejects extra entries. Its JSON has `intention` and
156
- `observation` only; it has no `outcomes`, `instructions`, or guidance content.
157
- Exit status `0` means the chosen project snapshot is valid; `1` means invalid
158
- or unavailable and must block the commit; `2` means invalid CLI usage. Do not
159
- treat the existence of a report as permission to commit.
191
+ phase guidance files and rejects extra entries. Its JSON uses all four
192
+ projections. `actions` is normally empty, except that `check --remote` records
193
+ its fetch, and `response` is a `validation-result`; no guidance content is
194
+ returned. Exit status `0` means the chosen project snapshot is valid; `1`
195
+ means invalid or unavailable and must block the commit; `2` means invalid CLI
196
+ usage. Do not treat the existence of a report as permission to commit.
160
197
 
161
198
  `check --language en-US|zh-CN` changes only Silvermoon-owned report framing.
162
199
  It is orthogonal to every check target and never changes the selected snapshot,