sanook-cli 0.5.1 → 0.5.2
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/.env.example +161 -3
- package/CHANGELOG.md +57 -8
- package/README.md +240 -23
- package/README.th.md +87 -6
- package/dist/approval.js +6 -0
- package/dist/bin.js +3026 -196
- package/dist/brain-context.js +223 -0
- package/dist/brain-doctor.js +318 -0
- package/dist/brain-eval.js +186 -0
- package/dist/brain-final.js +371 -0
- package/dist/brain-review.js +382 -0
- package/dist/brain.js +12 -1
- package/dist/brand.js +1 -1
- package/dist/cli-args.js +152 -0
- package/dist/cli-option-values.js +16 -0
- package/dist/commands.js +172 -13
- package/dist/compaction.js +96 -11
- package/dist/config.js +118 -28
- package/dist/context-compression.js +191 -0
- package/dist/cost.js +49 -15
- package/dist/first-run.js +21 -0
- package/dist/gateway/auth.js +37 -8
- package/dist/gateway/bluebubbles.js +205 -0
- package/dist/gateway/config.js +929 -0
- package/dist/gateway/deliver.js +357 -0
- package/dist/gateway/discord.js +124 -0
- package/dist/gateway/email.js +472 -0
- package/dist/gateway/googlechat.js +207 -0
- package/dist/gateway/homeassistant.js +256 -0
- package/dist/gateway/ledger.js +18 -0
- package/dist/gateway/line.js +171 -0
- package/dist/gateway/lock.js +3 -1
- package/dist/gateway/matrix.js +366 -0
- package/dist/gateway/mattermost.js +322 -0
- package/dist/gateway/ntfy.js +218 -0
- package/dist/gateway/schedule.js +31 -4
- package/dist/gateway/serve.js +267 -7
- package/dist/gateway/server.js +253 -19
- package/dist/gateway/service.js +224 -0
- package/dist/gateway/session.js +343 -0
- package/dist/gateway/signal.js +351 -0
- package/dist/gateway/slack.js +124 -0
- package/dist/gateway/sms.js +169 -0
- package/dist/gateway/targets.js +576 -0
- package/dist/gateway/teams.js +106 -0
- package/dist/gateway/telegram.js +38 -15
- package/dist/gateway/webhooks.js +220 -0
- package/dist/gateway/whatsapp.js +230 -0
- package/dist/hooks.js +13 -2
- package/dist/insights-args.js +35 -0
- package/dist/insights.js +86 -0
- package/dist/loop.js +123 -24
- package/dist/lsp/index.js +23 -5
- package/dist/mcp-registry.js +350 -0
- package/dist/mcp-server.js +1 -1
- package/dist/mcp.js +44 -6
- package/dist/memory.js +100 -33
- package/dist/orchestrate.js +49 -19
- package/dist/personality.js +58 -0
- package/dist/providers/codex.js +70 -36
- package/dist/providers/keys.js +1 -1
- package/dist/providers/models.js +1 -1
- package/dist/providers/registry.js +14 -47
- package/dist/search/chunk.js +7 -8
- package/dist/search/cli.js +75 -0
- package/dist/search/embed-store.js +3 -0
- package/dist/search/indexer.js +44 -1
- package/dist/search/store.js +23 -1
- package/dist/session.js +93 -7
- package/dist/skill-install.js +29 -12
- package/dist/support-dump.js +175 -0
- package/dist/tools/edit.js +45 -15
- package/dist/tools/git.js +10 -5
- package/dist/tools/homeassistant.js +106 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/list.js +19 -6
- package/dist/tools/permission.js +923 -9
- package/dist/tools/read.js +16 -4
- package/dist/tools/schedule.js +19 -3
- package/dist/tools/search.js +217 -13
- package/dist/tools/task.js +18 -7
- package/dist/tools/timeout.js +21 -3
- package/dist/trust.js +11 -1
- package/dist/ui/app.js +48 -8
- package/dist/ui/history.js +37 -5
- package/dist/ui/mentions.js +3 -2
- package/dist/ui/setup.js +17 -4
- package/dist/update.js +24 -11
- package/dist/worktree.js +175 -4
- package/package.json +4 -4
- package/second-brain/AGENTS.md +6 -4
- package/second-brain/CLAUDE.md +7 -1
- package/second-brain/Evals/_Index.md +10 -2
- package/second-brain/Evals/quality-ledger.md +9 -1
- package/second-brain/Evals/second-brain-benchmarks.md +62 -0
- package/second-brain/GEMINI.md +5 -4
- package/second-brain/Home.md +1 -1
- package/second-brain/Projects/_Index.md +3 -1
- package/second-brain/Projects/sanook-cli/_Index.md +26 -0
- package/second-brain/Projects/sanook-cli/second-brain-feature-roadmap.md +156 -0
- package/second-brain/README.md +1 -1
- package/second-brain/Research/2026-06-17-ai-second-brain-method-experiment.md +108 -0
- package/second-brain/Research/2026-06-18-ai-token-reduction-frameworks.md +55 -0
- package/second-brain/Research/2026-06-18-hermes-cli-second-brain-expansion-research.md +160 -0
- package/second-brain/Research/2026-06-18-sanook-mcp-ecosystem-and-ux-roadmap.md +181 -0
- package/second-brain/Research/_Index.md +6 -1
- package/second-brain/Reviews/2026-06-18-auto-improve-maintenance.md +54 -0
- package/second-brain/Reviews/_Index.md +1 -1
- package/second-brain/Runbooks/_Index.md +6 -1
- package/second-brain/Runbooks/ai-second-brain-operating-sequence.md +108 -0
- package/second-brain/SANOOK.md +45 -0
- package/second-brain/Sessions/2026-06-17-ai-framework-additional-zones.md +68 -0
- package/second-brain/Sessions/2026-06-17-ai-second-brain-sequence-experiment.md +63 -0
- package/second-brain/Sessions/2026-06-18-cli-args-release-readiness.md +59 -0
- package/second-brain/Sessions/2026-06-18-final-gate-template-final.md +192 -0
- package/second-brain/Sessions/2026-06-18-final-gate-template.md +71 -0
- package/second-brain/Sessions/2026-06-18-framework-dogfood-permission-and-memory.md +58 -0
- package/second-brain/Sessions/2026-06-18-hermes-second-brain-expansion-research.md +52 -0
- package/second-brain/Sessions/2026-06-18-mcp-ecosystem-and-sanook-ux-scan.md +81 -0
- package/second-brain/Sessions/2026-06-18-sanook-brain-cli-p0-implementation.md +86 -0
- package/second-brain/Sessions/2026-06-18-sanook-brain-final-cli-final.md +246 -0
- package/second-brain/Sessions/2026-06-18-sanook-brain-final-cli.md +78 -0
- package/second-brain/Sessions/2026-06-18-sanook-cli-second-brain-roadmap-correction.md +54 -0
- package/second-brain/Sessions/2026-06-18-token-reduction-framework-integration.md +69 -0
- package/second-brain/Sessions/_Index.md +15 -1
- package/second-brain/Shared/AI-Context-Index.md +22 -0
- package/second-brain/Shared/Context-Packs/_Index.md +9 -1
- package/second-brain/Shared/Context-Packs/coding-release.md +51 -0
- package/second-brain/Shared/Context-Packs/research-to-framework.md +51 -0
- package/second-brain/Shared/Context-Packs/second-brain-maintenance.md +41 -0
- package/second-brain/Shared/Operating-State/current-state.md +22 -3
- package/second-brain/Shared/Scripts/_Index.md +3 -1
- package/second-brain/Shared/Scripts/ai-second-brain-method-eval.mjs +198 -0
- package/second-brain/Shared/Tech-Standards/_Index.md +4 -1
- package/second-brain/Shared/Tech-Standards/mcp-integration-roadmap.md +86 -0
- package/second-brain/Shared/Tech-Standards/verification-standard.md +24 -0
- package/second-brain/Shared/User-Memory/_Index.md +4 -1
- package/second-brain/Shared/User-Memory/response-examples.md +98 -0
- package/second-brain/Shared/User-Memory/user-preferences.md +1 -0
- package/second-brain/Templates/_Index.md +9 -0
- package/second-brain/Templates/final-lite.md +111 -0
- package/second-brain/Templates/final.md +231 -0
- package/second-brain/Vault Structure Map.md +2 -1
- package/skills/structured-output-llm/SKILL.md +1 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: [research, mcp, sanook-cli, integration, roadmap]
|
|
3
|
+
note_type: research
|
|
4
|
+
created: 2026-06-18
|
|
5
|
+
updated: 2026-06-18
|
|
6
|
+
parent: "[[Research/_Index]]"
|
|
7
|
+
source:
|
|
8
|
+
- https://registry.modelcontextprotocol.io/openapi.json
|
|
9
|
+
- https://registry.modelcontextprotocol.io/v0/servers
|
|
10
|
+
- https://registry.modelcontextprotocol.io/v0/version
|
|
11
|
+
- https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
|
|
12
|
+
- https://modelcontextprotocol.io/specification/2025-06-18/server/tools
|
|
13
|
+
related:
|
|
14
|
+
- "[[Shared/Tech-Standards/mcp-integration-roadmap]]"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 2026-06-18 - Sanook MCP Ecosystem and UX Roadmap
|
|
18
|
+
|
|
19
|
+
> Research snapshot for how Sanook CLI currently handles MCP, what the official MCP registry exposes, and which integrations would make Sanook easier to use.
|
|
20
|
+
|
|
21
|
+
## Current Sanook MCP State
|
|
22
|
+
|
|
23
|
+
Sanook already has a strong MCP foundation:
|
|
24
|
+
|
|
25
|
+
- MCP client: `src/mcp.ts`
|
|
26
|
+
- Loads global `~/.sanook/mcp.json`.
|
|
27
|
+
- Loads project `.sanook/mcp.json` only after project trust.
|
|
28
|
+
- Supports stdio via `command` + `args`.
|
|
29
|
+
- Supports remote Streamable HTTP via `url` + `headers`.
|
|
30
|
+
- Sanitizes server names.
|
|
31
|
+
- Sends minimal safe env to child MCP servers and only passes explicit `cfg.env`.
|
|
32
|
+
- Caps MCP tool output.
|
|
33
|
+
- Merges MCP tools into the main agent as `<server>__<tool>`.
|
|
34
|
+
- MCP server: `src/mcp-server.ts`
|
|
35
|
+
- `sanook mcp serve` exposes `sanook_search`, `sanook_recall`, `sanook_remember`, `sanook_index`, and `sanook_stats`.
|
|
36
|
+
- Uses stdio JSON-RPC and keeps stdout protocol-clean.
|
|
37
|
+
- CLI management: `src/bin.ts`
|
|
38
|
+
- `sanook mcp add <name> <command> [args...]`
|
|
39
|
+
- `sanook mcp add <name> https://host/mcp`
|
|
40
|
+
- `sanook mcp list`
|
|
41
|
+
- `sanook mcp remove <name>`
|
|
42
|
+
|
|
43
|
+
Main gap: Sanook can run MCP servers, but users still need to know the exact package, args, secrets, and safe configuration shape themselves.
|
|
44
|
+
|
|
45
|
+
## Registry Findings
|
|
46
|
+
|
|
47
|
+
The official registry API is available and healthy:
|
|
48
|
+
|
|
49
|
+
- `GET /v0/version` returned registry `1.7.9`, build time `2026-05-12T21:05:57Z`.
|
|
50
|
+
- `GET /v0/health` returned `status: ok`.
|
|
51
|
+
- OpenAPI exposes list/get/validate/publish/status endpoints under `/v0` and `/v0.1`.
|
|
52
|
+
- Server entries include:
|
|
53
|
+
- `server.name`, `description`, `version`, `repository`, `websiteUrl`
|
|
54
|
+
- `remotes` with `type: streamable-http` or `sse`
|
|
55
|
+
- `packages` with `registryType`, `identifier`, `version`, `runtimeHint`, `transport`
|
|
56
|
+
- `environmentVariables`, `headers`, `packageArguments`, `runtimeArguments`
|
|
57
|
+
- `isRequired`, `isSecret`, `format`, `placeholder`, and default values for setup UX
|
|
58
|
+
- metadata such as `isLatest`
|
|
59
|
+
|
|
60
|
+
This means Sanook can build a first-class MCP installer without hardcoding every server.
|
|
61
|
+
|
|
62
|
+
## High-Value MCP Categories for Sanook
|
|
63
|
+
|
|
64
|
+
| Category | Examples seen in registry | Why it matters for Sanook |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| Code hosting | GitLab official remote, GitHub variants | PRs/issues/releases/repo operations. |
|
|
67
|
+
| Local/cloud files | Filesystem variants, remote GCS filesystem | Safer file access outside the workspace, cloud artifacts. |
|
|
68
|
+
| Databases | Postgres, SQLite | Data inspection for app/debug workflows; should default read-only. |
|
|
69
|
+
| Project management | Linear, Jira | Turn user tasks into issue-backed work loops. |
|
|
70
|
+
| Observability | Sentry | Debug production errors from real issue/event context. |
|
|
71
|
+
| Browser/web | Playwright, Browserbase, fetch, Brave/web search | JS-rendered pages, docs extraction, web research. |
|
|
72
|
+
| Team/chat | Slack, Discord | Team context and delivery/notification workflows. |
|
|
73
|
+
| Knowledge/workspace | Notion, Gmail, Google Drive, Obsidian | Import user knowledge into second-brain workflows. |
|
|
74
|
+
| Docs/versioned knowledge | Context7-like docs servers | Better library/API grounding without broad web search. |
|
|
75
|
+
| Infrastructure | Docker, Kubernetes variants | Ops/debug workflows, but needs strict approval gates. |
|
|
76
|
+
|
|
77
|
+
## Recommended Sanook UX Improvements
|
|
78
|
+
|
|
79
|
+
### P0: Discover / Install / Test
|
|
80
|
+
|
|
81
|
+
Add registry-backed commands:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
sanook mcp search <query>
|
|
85
|
+
sanook mcp info <server-name>
|
|
86
|
+
sanook mcp install <server-name> [--name alias]
|
|
87
|
+
sanook mcp test [name]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Expected behavior:
|
|
91
|
+
|
|
92
|
+
- `search` calls the official registry, filters latest versions, and shows transport/package choices.
|
|
93
|
+
- `info` shows description, repo, remotes/packages, required env/header secrets, and risk class.
|
|
94
|
+
- `install` converts registry metadata to `~/.sanook/mcp.json`.
|
|
95
|
+
- `test` initializes the server and lists tools without starting an agent turn.
|
|
96
|
+
|
|
97
|
+
### P1: Setup Wizard from Registry Metadata
|
|
98
|
+
|
|
99
|
+
Use `environmentVariables` and `headers`:
|
|
100
|
+
|
|
101
|
+
- prompt for required secrets without echoing them
|
|
102
|
+
- support `--env KEY=value` and `--header KEY=value`
|
|
103
|
+
- store secrets explicitly only in `~/.sanook/mcp.json`, not inherited process env
|
|
104
|
+
- show a redacted preview before write
|
|
105
|
+
|
|
106
|
+
### P1: Safer Capability Review
|
|
107
|
+
|
|
108
|
+
After install/test, print:
|
|
109
|
+
|
|
110
|
+
- transport: stdio / remote HTTP
|
|
111
|
+
- package runtime: `npx`, `uvx`, Docker, remote
|
|
112
|
+
- number of tools
|
|
113
|
+
- tool names
|
|
114
|
+
- risk class:
|
|
115
|
+
- read-only
|
|
116
|
+
- file-write
|
|
117
|
+
- network-write
|
|
118
|
+
- database-write
|
|
119
|
+
- infra/admin
|
|
120
|
+
|
|
121
|
+
Then let users enable dangerous servers intentionally.
|
|
122
|
+
|
|
123
|
+
### P2: Preset Packs
|
|
124
|
+
|
|
125
|
+
Sanook can ship curated packs:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
sanook mcp preset dev
|
|
129
|
+
sanook mcp preset research
|
|
130
|
+
sanook mcp preset pm
|
|
131
|
+
sanook mcp preset ops
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Suggested presets:
|
|
135
|
+
|
|
136
|
+
- `dev`: GitHub/GitLab, filesystem, Sentry, Context7/docs
|
|
137
|
+
- `research`: fetch, Brave/web search, docs, Obsidian/GDrive
|
|
138
|
+
- `pm`: Linear/Jira, Slack, Notion
|
|
139
|
+
- `ops`: Postgres read-only, Docker/Kubernetes, Sentry
|
|
140
|
+
|
|
141
|
+
### P2: Tool Discovery in the REPL
|
|
142
|
+
|
|
143
|
+
Improve `/tools`:
|
|
144
|
+
|
|
145
|
+
- group MCP tools by server
|
|
146
|
+
- show disabled/unreachable servers
|
|
147
|
+
- show how to fix missing env/headers
|
|
148
|
+
- show source config path: global vs project
|
|
149
|
+
|
|
150
|
+
## Implementation Notes
|
|
151
|
+
|
|
152
|
+
Good fit for Sanook's existing code:
|
|
153
|
+
|
|
154
|
+
- Add a new module `src/mcp-registry.ts`.
|
|
155
|
+
- Keep registry parsing pure/testable.
|
|
156
|
+
- Do not install from arbitrary registry package metadata without showing command/env first.
|
|
157
|
+
- Prefer remote Streamable HTTP when no local runtime is required.
|
|
158
|
+
- Prefer read-only database servers by default.
|
|
159
|
+
- Keep project `.sanook/mcp.json` behind trust, as today.
|
|
160
|
+
- Add tests with mocked fetch and fake MCP servers.
|
|
161
|
+
|
|
162
|
+
## Suggested First Integrations
|
|
163
|
+
|
|
164
|
+
For this repo and owner's likely workflows:
|
|
165
|
+
|
|
166
|
+
1. GitLab official remote or GitHub MCP variant: repo/issues/PRs/releases.
|
|
167
|
+
2. Sentry: production debugging and release verification.
|
|
168
|
+
3. Linear/Jira: task loop integration if issue tracker is used.
|
|
169
|
+
4. Postgres read-only: app data inspection.
|
|
170
|
+
5. Context7/docs + fetch/search: better grounded research.
|
|
171
|
+
6. Slack/Discord: team/message workflows.
|
|
172
|
+
7. Google Drive/Gmail/Notion/Obsidian: knowledge intake into second-brain.
|
|
173
|
+
|
|
174
|
+
## Open Questions
|
|
175
|
+
|
|
176
|
+
- Should Sanook store MCP secrets directly in `mcp.json`, or add a redacted secret store under `~/.sanook/secrets.json`?
|
|
177
|
+
- Should `sanook mcp install` default to global only, with `--project` requiring trust?
|
|
178
|
+
- Should remote OAuth flows be supported directly, or should Sanook only accept bearer tokens/headers first?
|
|
179
|
+
- Should dangerous MCP tool groups be disabled until the user runs `sanook mcp enable <name> --write`?
|
|
180
|
+
|
|
181
|
+
up:: [[Research/_Index]]
|
|
@@ -25,6 +25,11 @@ parent: "[[Home]]"
|
|
|
25
25
|
|
|
26
26
|
> รายละเอียดทุกโฟลเดอร์ + decision rules → [[Vault Structure Map]]
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
## Research Notes
|
|
29
|
+
|
|
30
|
+
- [[Research/2026-06-17-ai-second-brain-method-experiment]] — ทดลองเปรียบเทียบวิธีใช้ second-brain ร่วมกับ AI และเลือก Scientific Loop Sequence
|
|
31
|
+
- [[Research/2026-06-18-hermes-cli-second-brain-expansion-research]] — research ว่าควรเพิ่มอะไรใน second-brain เพื่อให้ Hermes CLI ใช้ vault ได้ดีขึ้น
|
|
32
|
+
- [[Research/2026-06-18-sanook-mcp-ecosystem-and-ux-roadmap]] — MCP ecosystem scan + Sanook CLI registry/install/test roadmap
|
|
33
|
+
- [[Research/2026-06-18-ai-token-reduction-frameworks]] — compare LLMLingua, Selective Context, and Headroom for Sanook token reduction
|
|
29
34
|
|
|
30
35
|
up:: [[Home]]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: [review, maintenance, auto-improve]
|
|
3
|
+
note_type: review
|
|
4
|
+
created: 2026-06-18
|
|
5
|
+
updated: 2026-06-18
|
|
6
|
+
parent: "[[Reviews/_Index]]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Auto Improve Maintenance - 2026-06-18
|
|
10
|
+
|
|
11
|
+
> Purpose: Record the local recurring maintenance run, the small improvement chosen, and verification status for future agents.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
Recurring local maintenance run for `sanook-cli`.
|
|
16
|
+
|
|
17
|
+
## Current State
|
|
18
|
+
|
|
19
|
+
- Existing uncommitted changes already included a `serve --port` missing-value UX fix in `src/cli-args.ts`, search split-option hardening, matching tests, changelog text, and release-readiness notes.
|
|
20
|
+
- Full test baseline passed before this follow-up work.
|
|
21
|
+
- This run consolidated duplicated inline/split CLI option-value handling into `src/cli-option-values.ts`, shared by `parseArgs`, `parseServeArgs`, and `parseSearchArgs`.
|
|
22
|
+
- Parser behavior is intended to stay unchanged by the consolidation; existing focused parser tests cover the touched surfaces.
|
|
23
|
+
- This recurring follow-up added a spawned CLI regression test for `sanook gateway setup ntfy`, covering required split-option missing values and preserving single-dash secret values like `--token -tk_secret`.
|
|
24
|
+
|
|
25
|
+
## Verification
|
|
26
|
+
|
|
27
|
+
- `npm test` before new edits - 94 files, 810 tests passed.
|
|
28
|
+
- `npm test -- src/search/cli.test.ts` - 1 file, 10 tests passed.
|
|
29
|
+
- `npm run typecheck` - passed.
|
|
30
|
+
- One chained full-suite attempt hit sandbox loopback `EPERM` while another listen probe was running; `npm test -- src/integration.test.ts` passed on rerun.
|
|
31
|
+
- `npm test` after new edits - 94 files, 811 tests passed.
|
|
32
|
+
- `npm run build` - passed.
|
|
33
|
+
- Follow-up baseline `npm test` - 94 files, 811 tests passed.
|
|
34
|
+
- `npm test -- src/cli-args.test.ts src/search/cli.test.ts` - 2 files, 30 tests passed.
|
|
35
|
+
- Follow-up `npm run typecheck` - passed.
|
|
36
|
+
- Follow-up `npm test` after consolidation - 94 files, 811 tests passed.
|
|
37
|
+
- Follow-up `npm run build` - passed.
|
|
38
|
+
- Recurring maintenance baseline `npm test` - 95 files, 814 tests passed.
|
|
39
|
+
- `npm test -- src/gateway-setup-cli.test.ts` - 1 file, 2 tests passed.
|
|
40
|
+
- `npm run typecheck` - passed.
|
|
41
|
+
- Follow-up `npm test` after gateway setup CLI regression coverage - 96 files, 816 tests passed.
|
|
42
|
+
- `npm run build` - passed.
|
|
43
|
+
|
|
44
|
+
## Follow-up Audit
|
|
45
|
+
|
|
46
|
+
- Reviewed the remaining direct next-argument readers in `src/tools/permission.ts` and `src/bin.ts`.
|
|
47
|
+
- No safe behavior change was made this pass: the `permission.ts` readers intentionally model shell/git option semantics where a following token that begins with `-` can still be the consumed value, and the gateway setup helpers in `bin.ts` may receive secret/token values that begin with `-`.
|
|
48
|
+
- Avoid broad conversion to the shared CLI option helper unless the target command surface has tests proving flag-like values should be rejected.
|
|
49
|
+
|
|
50
|
+
## Next Candidate
|
|
51
|
+
|
|
52
|
+
Consider extracting a small gateway setup option parser only if more setup command regressions appear; for now the spawned CLI regression coverage protects the known brittle edge without broad parser churn.
|
|
53
|
+
|
|
54
|
+
up:: [[Reviews/_Index]]
|
|
@@ -25,6 +25,6 @@ reflection รายงาน (→Retrospectives)
|
|
|
25
25
|
|
|
26
26
|
> รายละเอียดทุกโฟลเดอร์ + decision rules → [[Vault Structure Map]]
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
- [[Reviews/2026-06-18-auto-improve-maintenance]] — recurring local maintenance baseline and next candidate
|
|
29
29
|
|
|
30
30
|
up:: [[Home]]
|
|
@@ -25,6 +25,11 @@ runnable unit (→Skills)
|
|
|
25
25
|
|
|
26
26
|
> รายละเอียดทุกโฟลเดอร์ + decision rules → [[Vault Structure Map]]
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
## Runbooks
|
|
29
|
+
|
|
30
|
+
- [[Runbooks/ai-second-brain-operating-sequence]] — default sequence สำหรับ AI ทำงานกับ vault จากผลทดลอง 2026-06-17
|
|
31
|
+
- [[Runbooks/eval-loop]] — quality loop หลังงานไม่ trivial
|
|
32
|
+
- [[Runbooks/ingest-quarantine]] — gate สำหรับข้อมูลภายนอก/untrusted content
|
|
33
|
+
- [[Runbooks/sleep-time-consolidation]] — consolidate memory เป็นรอบ
|
|
29
34
|
|
|
30
35
|
up:: [[Home]]
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: [runbook, second-brain, ai, sequence]
|
|
3
|
+
note_type: runbook
|
|
4
|
+
created: 2026-06-17
|
|
5
|
+
updated: 2026-06-17
|
|
6
|
+
parent: "[[Runbooks/_Index]]"
|
|
7
|
+
evidence:: [[Research/2026-06-17-ai-second-brain-method-experiment]]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Runbook: AI Second-Brain Operating Sequence
|
|
11
|
+
|
|
12
|
+
> Default sequence for AI agents working with this vault. Evidence: [[Research/2026-06-17-ai-second-brain-method-experiment]].
|
|
13
|
+
|
|
14
|
+
## Principle
|
|
15
|
+
|
|
16
|
+
ใช้ **Scientific Loop Sequence**:
|
|
17
|
+
|
|
18
|
+
**Frame → Retrieve → Role → JIT Rules → Act → Write → Eval → Consolidate**
|
|
19
|
+
|
|
20
|
+
ห้ามใช้วิธี "โหลดทั้ง vault" และห้ามใช้ session history เป็น source of truth หลัก.
|
|
21
|
+
|
|
22
|
+
## Sequence
|
|
23
|
+
|
|
24
|
+
1. **Frame**
|
|
25
|
+
- แปลงคำขอเป็น objective, output, DoD, constraints, risk.
|
|
26
|
+
- ถ้ากว้าง/ข้อมูลดิบ/ไม่รู้ expected output ให้ใช้ interviewer gate ใน `CLAUDE.md`.
|
|
27
|
+
|
|
28
|
+
2. **Retrieve**
|
|
29
|
+
- อ่าน [[Shared/AI-Context-Index]] ก่อนเสมอ.
|
|
30
|
+
- โหลด hot path เท่าที่จำเป็น: [[USER]], [[Shared/Operating-State/current-state]], [[Shared/User-Memory/user-preferences]], [[Shared/Decision-Memory/decision-log]].
|
|
31
|
+
- ถ้างานตรงกับ pack ที่มีอยู่ ให้โหลด [[Shared/Context-Packs/_Index]] แล้วเลือก pack ก่อนประกอบเอง.
|
|
32
|
+
- ใช้ [[Shared/Rules/context-assembly-policy]] เพื่อวาง context สำคัญไว้หัว/ท้าย.
|
|
33
|
+
|
|
34
|
+
3. **Role**
|
|
35
|
+
- เลือกบทบาท AI หลักของ phase ปัจจุบันจากตารางด้านล่าง.
|
|
36
|
+
- หนึ่งงานเปลี่ยนบทบาทได้ แต่ต้องรู้ว่าตอนนี้กำลังทำบทบาทไหน.
|
|
37
|
+
|
|
38
|
+
4. **JIT Rules**
|
|
39
|
+
- ก่อนสร้าง/ย้ายโน้ต: อ่าน [[Vault Structure Map]] + `_Index.md` ของโฟลเดอร์ปลายทาง.
|
|
40
|
+
- ก่อนเขียน durable memory: อ่าน [[Shared/Rules/memory-write-protocol]].
|
|
41
|
+
- ก่อน ingest ของนอก: อ่าน [[Runbooks/ingest-quarantine]].
|
|
42
|
+
- ก่อนงานเทคนิค/release: อ่าน [[Shared/Tech-Standards/verification-standard]].
|
|
43
|
+
- งานหลาย agent: อ่าน [[Shared/Coordination/NOW]] + [[Shared/Coordination/task-board]].
|
|
44
|
+
|
|
45
|
+
5. **Act**
|
|
46
|
+
- ลงมือทำใน canonical home เดียว.
|
|
47
|
+
- Verify path/link/fact/command ก่อนอ้างผล.
|
|
48
|
+
- ถ้า error ที่กระทบ state: หยุด, ตรวจ diff/state, แล้วรายงาน.
|
|
49
|
+
|
|
50
|
+
6. **Write**
|
|
51
|
+
- ใช้ operation ชัดเจน: ADD / UPDATE / DELETE / NOOP.
|
|
52
|
+
- Merge, don't append.
|
|
53
|
+
- ทุก durable note ต้องมี `parent`, `up::`, และ link กลับ source/project/session/decision ที่เกี่ยวข้อง.
|
|
54
|
+
|
|
55
|
+
7. **Eval**
|
|
56
|
+
- งานไม่ trivial ให้รัน [[Runbooks/eval-loop]] แบบย่อ:
|
|
57
|
+
- retrieval hit?
|
|
58
|
+
- grounded?
|
|
59
|
+
- verification passed?
|
|
60
|
+
- มี distractor หรือ stale note ไหม?
|
|
61
|
+
- ก่อน/หลังแก้ framework ให้ใช้ [[Evals/second-brain-benchmarks]] เป็น regression check.
|
|
62
|
+
- บันทึกผลใน [[Evals/quality-ledger]] เมื่อเป็นงาน framework/ระบบ/หลาย session.
|
|
63
|
+
- ก่อนตอบว่าเสร็จแล้วในงานไม่ trivial ให้รัน `sanook brain final --task "..." --from-diff` หรือ instantiate [[Templates/final]] / [[Templates/final-lite]] เพื่อทำ final gate: objective/DoD, evidence matrix, residual risk, final-answer draft, และ memory closeout.
|
|
64
|
+
|
|
65
|
+
8. **Consolidate**
|
|
66
|
+
- อย่า consolidate กลางงานถ้าไม่จำเป็น.
|
|
67
|
+
- ตอนจบรอบ/รายสัปดาห์ใช้ [[Runbooks/sleep-time-consolidation]] เพื่อ promote, dedupe, archive stale, และเพิ่ม correction-pairs.
|
|
68
|
+
|
|
69
|
+
## AI Roles
|
|
70
|
+
|
|
71
|
+
| Role | ใช้เมื่อ | ทำอะไร | ห้ามทำ |
|
|
72
|
+
|---|---|---|---|
|
|
73
|
+
| **Scientist** | ต้องตัดสินวิธี/ทดลอง/เปรียบเทียบ | ตั้ง hypothesis, metric, run experiment, สรุปจาก evidence | สรุปจากความรู้สึกโดยไม่มี test/evidence |
|
|
74
|
+
| **Cartographer** | ต้องหา/ประกอบ context | เดิน index, map path, ลด distractor, รักษา context budget | โหลดทั้ง vault |
|
|
75
|
+
| **Librarian** | ต้องเขียน/ย้าย/จัด memory | classify artifact, merge/update, link graph, metadata | append ซ้ำหรือสร้าง note ผิดบ้าน |
|
|
76
|
+
| **Operator** | ต้องแก้ไฟล์/รัน command/build | execute, verify, report command result | ข้าม verification หรือทำ destructive โดยไม่ถาม |
|
|
77
|
+
| **Editor** | ต้องส่งผลให้ owner | distill เป็นคำตอบสั้น ชัด มี caveat | wall of text หรือซ่อน uncertainty |
|
|
78
|
+
| **Archivist** | จบรอบ/ส่งต่องาน | session log, handoff, quality ledger, consolidation candidate | ย้าย/lบ durable note โดยไม่ถาม |
|
|
79
|
+
|
|
80
|
+
## Default Role by Task
|
|
81
|
+
|
|
82
|
+
| Task type | Primary role | Secondary role |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| Research / compare methods | Scientist | Cartographer |
|
|
85
|
+
| New note / refactor vault structure | Librarian | Cartographer |
|
|
86
|
+
| Code / CLI / scripts | Operator | Scientist |
|
|
87
|
+
| Ingest web/paste/source | Librarian | Scientist |
|
|
88
|
+
| Multi-agent work | Archivist | Operator |
|
|
89
|
+
| Owner-facing summary | Editor | Scientist |
|
|
90
|
+
| Repeated task family | Cartographer | Operator |
|
|
91
|
+
|
|
92
|
+
## Token Rule
|
|
93
|
+
|
|
94
|
+
Target core context: ~2k tokens.
|
|
95
|
+
|
|
96
|
+
ถ้าต้องเกิน:
|
|
97
|
+
|
|
98
|
+
1. โหลด headings/identifiers ก่อน body.
|
|
99
|
+
2. ตัดไฟล์ที่ไม่ได้ตอบ DoD.
|
|
100
|
+
3. เขียน scratch ลง [[Shared/Working-Memory/_Index]] แทนการถือทุกอย่างใน context.
|
|
101
|
+
4. บอก owner ถ้า evidence ยังไม่พอ.
|
|
102
|
+
|
|
103
|
+
related:: [[Shared/AI-Context-Index]]
|
|
104
|
+
related:: [[Shared/Context-Packs/_Index]]
|
|
105
|
+
related:: [[Shared/Rules/context-assembly-policy]]
|
|
106
|
+
related:: [[Runbooks/eval-loop]]
|
|
107
|
+
related:: [[Runbooks/sleep-time-consolidation]]
|
|
108
|
+
up:: [[Runbooks/_Index]]
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Sanook CLI — Operating Config for "{{VAULT_NAME}}"
|
|
2
|
+
|
|
3
|
+
> สำหรับ Sanook CLI (`sanook`, `sanook chat`) เท่านั้น — รัฐธรรมนูญเต็มอยู่ที่ **`CLAUDE.md`** (agent-agnostic)
|
|
4
|
+
|
|
5
|
+
## Why This File Exists
|
|
6
|
+
- Sanook CLI loads `SANOOK.md` as its dedicated operating config to guide its behavior.
|
|
7
|
+
- Use this file for interactive Sanook CLI sessions launched from this vault.
|
|
8
|
+
- Messaging gateway, desktop app, cron delivery, and platform bot setup are out of scope here unless {{OWNER_NAME}} explicitly asks for them.
|
|
9
|
+
|
|
10
|
+
## Identity
|
|
11
|
+
- AI = **{{AI_NAME}}** ({{AI_PRONOUN}}) · เรียกเจ้าของ **{{OWNER_NAME}}** · ภาษา {{LANGUAGE}} · โทน {{TONE}} · Autonomy {{AUTONOMY}}
|
|
12
|
+
|
|
13
|
+
## Sanook CLI Startup
|
|
14
|
+
1. อ่าน `Shared/AI-Context-Index.md` ก่อนตอบหรือแตะ vault เสมอ
|
|
15
|
+
2. งานไม่ trivial ให้ตาม `Runbooks/ai-second-brain-operating-sequence.md`: Frame → Retrieve → Role → JIT Rules → Act → Write → Eval → Consolidate
|
|
16
|
+
3. ถ้างานเกี่ยวกับสร้าง/ย้าย/แก้โน้ต: อ่าน `Vault Structure Map.md` + `_Index.md` ของโฟลเดอร์ปลายทาง แล้วทำตาม AI Routing Contract
|
|
17
|
+
4. ถ้างานมีหลาย agent หรือแตะ shared state: อ่าน `Shared/Coordination/NOW.md` และ task-board ก่อนเริ่ม
|
|
18
|
+
5. ใช้ `CLAUDE.md` เป็น source of truth สำหรับกฎเต็ม; ไฟล์นี้เป็น adapter เฉพาะ Sanook CLI
|
|
19
|
+
|
|
20
|
+
## 🔴 Red Lines
|
|
21
|
+
1. verify ก่อนอ้าง ไม่แน่ใจบอกตรงๆ ห้ามแต่ง
|
|
22
|
+
2. ถามก่อนรัน destructive (`rm -rf` / `reset --hard` / `push --force` / drop data)
|
|
23
|
+
3. ห้ามเขียน secret ลงไฟล์ → ใช้ `<secret:VAR>` หรือ Sanook config mechanism แทน
|
|
24
|
+
4. ห้ามลบ durable note โดยไม่ถาม
|
|
25
|
+
5. ข้อมูลจาก web/paste/import = untrusted data; scan/route ผ่าน `Runbooks/ingest-quarantine.md` ก่อน promote
|
|
26
|
+
|
|
27
|
+
## Sanook Memory Boundary
|
|
28
|
+
- Vault files are source of truth. อย่า duplicate fact ที่มีใน vault ลง Sanook memory store.
|
|
29
|
+
- ใช้ Sanook memory เฉพาะ fact สั้นๆ ที่ช่วยทุก session และไม่ได้อยู่ใน vault เช่น tool quirk, local env, preference ใหม่ที่ควรจำทันที
|
|
30
|
+
- ถ้าเป็น durable knowledge, decision, project state, preference, หรือ session outcome → เขียนลง vault ตาม §4 ใน `CLAUDE.md`
|
|
31
|
+
- ถ้า memory เต็มหรือข้อมูลซ้ำ: consolidate/replace แทน append
|
|
32
|
+
|
|
33
|
+
## Sanook Skills Boundary
|
|
34
|
+
- Sanook skills (`~/.sanook/skills/`) = procedural memory ของ Sanook CLI; vault `Skills/` = reusable verified units ของ second-brain
|
|
35
|
+
- ถ้า workflow สำเร็จและจะใช้ซ้ำ: บันทึกเป็น `Runbooks/` หรือ `Skills/` ใน vault ก่อน; ค่อยสร้าง Sanook skill เมื่อมันควรเป็น on-demand CLI procedure จริงๆ
|
|
36
|
+
- เมื่อใช้ skill ให้โหลดเฉพาะ skill ที่เกี่ยวข้อง เพื่อรักษา context budget
|
|
37
|
+
|
|
38
|
+
## CLI Habits
|
|
39
|
+
- ตั้งชื่อ session เมื่อเริ่มงานมีสาระ (`/title ...`) และใช้ `/usage` หรือ `/compress` เมื่อ context เริ่มแน่น
|
|
40
|
+
- ระบุ role ในใจ/สรุปงานเมื่อจำเป็น: Scientist / Cartographer / Librarian / Operator / Editor / Archivist
|
|
41
|
+
- งานซ้ำให้เช็ก `Shared/Context-Packs/_Index.md`; งาน framework ให้เช็ก `Evals/second-brain-benchmarks.md`
|
|
42
|
+
- งานยาว/คู่ขนานใช้ Sanook background/worktree เฉพาะเมื่อขอบเขตชัด และสรุปผลกลับเข้า `Sessions/`
|
|
43
|
+
- หลังงานสำคัญเสร็จ: เขียน `Sessions/{{DATE}}-<topic>.md` ตาม 7 หัวข้อใน `CLAUDE.md`
|
|
44
|
+
|
|
45
|
+
> รายละเอียด §1–§19 → `CLAUDE.md`
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: [session, session-log, second-brain, framework]
|
|
3
|
+
note_type: session-log
|
|
4
|
+
created: 2026-06-17
|
|
5
|
+
updated: 2026-06-17
|
|
6
|
+
parent: "[[Sessions/_Index]]"
|
|
7
|
+
ai_surface: history
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
> Purpose: Record the AI framework zone additions so future agents can trace why benchmarks, response examples, and context packs were added.
|
|
11
|
+
|
|
12
|
+
# 2026-06-17 — AI Framework Additional Zones
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
|
|
16
|
+
เพิ่ม 3 ชั้นที่ช่วยให้ AI เก่งขึ้นใน framework โดยไม่เพิ่ม root folder ใหม่: benchmarks, response/taste examples, และ context packs.
|
|
17
|
+
|
|
18
|
+
## What Was Tried
|
|
19
|
+
|
|
20
|
+
- อ่าน routing contracts ของ [[Evals/_Index]], [[Shared/User-Memory/_Index]], และ [[Shared/Context-Packs/_Index]]
|
|
21
|
+
- เติมไฟล์ใหม่ใน zone เดิมแทนการสร้าง root folder ใหม่
|
|
22
|
+
- Wire เข้ากับ [[Shared/AI-Context-Index]], [[Runbooks/ai-second-brain-operating-sequence]], `CLAUDE.md`, และ `SANOOK.md`
|
|
23
|
+
|
|
24
|
+
## Errors
|
|
25
|
+
|
|
26
|
+
- ไม่มี command error
|
|
27
|
+
- ระวังว่า benchmark cases ไม่ใช่ golden fixtures; expected-output fixture ยังต้องอยู่ [[Acceptance/_Index]]
|
|
28
|
+
|
|
29
|
+
## Solutions
|
|
30
|
+
|
|
31
|
+
- เพิ่ม [[Evals/second-brain-benchmarks]] สำหรับวัดคุณภาพ AI กับ vault
|
|
32
|
+
- เพิ่ม [[Shared/User-Memory/response-examples]] สำหรับ taste/style examples
|
|
33
|
+
- เพิ่ม context packs:
|
|
34
|
+
- [[Shared/Context-Packs/second-brain-maintenance]]
|
|
35
|
+
- [[Shared/Context-Packs/coding-release]]
|
|
36
|
+
- [[Shared/Context-Packs/research-to-framework]]
|
|
37
|
+
- อัปเดต indexes, quality ledger, current-state, hot path, และ sequence runbook
|
|
38
|
+
|
|
39
|
+
## Key Decisions
|
|
40
|
+
|
|
41
|
+
- ไม่เพิ่ม root-level zone ใหม่ เพราะ vault มี `Evals`, `User-Memory`, และ `Context-Packs` รองรับอยู่แล้ว
|
|
42
|
+
- ใช้ context packs เฉพาะ task family ที่ชัดเจน; งานอื่นยังใช้ JIT rules ปกติ
|
|
43
|
+
- งาน framework ควรใช้ benchmarks ก่อน/หลังแก้เพื่อวัด regression
|
|
44
|
+
|
|
45
|
+
## Files Changed
|
|
46
|
+
|
|
47
|
+
- `second-brain/Evals/second-brain-benchmarks.md`
|
|
48
|
+
- `second-brain/Shared/User-Memory/response-examples.md`
|
|
49
|
+
- `second-brain/Shared/Context-Packs/second-brain-maintenance.md`
|
|
50
|
+
- `second-brain/Shared/Context-Packs/coding-release.md`
|
|
51
|
+
- `second-brain/Shared/Context-Packs/research-to-framework.md`
|
|
52
|
+
- `second-brain/Evals/_Index.md`
|
|
53
|
+
- `second-brain/Shared/User-Memory/_Index.md`
|
|
54
|
+
- `second-brain/Shared/Context-Packs/_Index.md`
|
|
55
|
+
- `second-brain/Shared/AI-Context-Index.md`
|
|
56
|
+
- `second-brain/Runbooks/ai-second-brain-operating-sequence.md`
|
|
57
|
+
- `second-brain/CLAUDE.md`
|
|
58
|
+
- `second-brain/SANOOK.md`
|
|
59
|
+
- `second-brain/Evals/quality-ledger.md`
|
|
60
|
+
- `second-brain/Shared/Operating-State/current-state.md`
|
|
61
|
+
|
|
62
|
+
## Next Steps
|
|
63
|
+
|
|
64
|
+
- ใช้ context packs ใหม่กับงานจริงอย่างน้อย 3 ครั้ง
|
|
65
|
+
- เพิ่ม taste examples จาก feedback จริงของเจ้าของ
|
|
66
|
+
- ถ้ามี benchmark fail ซ้ำ ให้เพิ่ม correction-pair และปรับ runbook/context pack
|
|
67
|
+
|
|
68
|
+
up:: [[Sessions/_Index]]
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: [session, session-log, second-brain, ai-sequence]
|
|
3
|
+
note_type: session-log
|
|
4
|
+
created: 2026-06-17
|
|
5
|
+
updated: 2026-06-17
|
|
6
|
+
parent: "[[Sessions/_Index]]"
|
|
7
|
+
ai_surface: history
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
> Purpose: Record the AI second-brain sequence experiment so future agents can trace the default operating sequence decision.
|
|
11
|
+
|
|
12
|
+
# 2026-06-17 — AI Second-Brain Sequence Experiment
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
|
|
16
|
+
ทดลองเปรียบเทียบวิธีใช้ second-brain ร่วมกับ AI แล้วปรับ framework ให้ใช้ [[Runbooks/ai-second-brain-operating-sequence]] เป็น default sequence.
|
|
17
|
+
|
|
18
|
+
## What Was Tried
|
|
19
|
+
|
|
20
|
+
- อ่าน hot-path docs: [[Shared/AI-Context-Index]], [[Vault Structure Map]], [[Shared/Rules/context-assembly-policy]], [[Runbooks/eval-loop]], [[Runbooks/sleep-time-consolidation]]
|
|
21
|
+
- สร้างและรัน `Shared/Scripts/ai-second-brain-method-eval.mjs`
|
|
22
|
+
- เทียบ 5 methods กับ 7 scenarios ของ vault จริง
|
|
23
|
+
|
|
24
|
+
## Errors
|
|
25
|
+
|
|
26
|
+
- ไม่มี command error ระหว่างรัน experiment
|
|
27
|
+
- ข้อจำกัดที่พบ: winner ใช้ avg context ~2890 tokens สูงกว่า target ~2k จึงต้องใช้ JIT expansion ไม่ใช่ preload ทุก rule
|
|
28
|
+
|
|
29
|
+
## Solutions
|
|
30
|
+
|
|
31
|
+
- บันทึกผลที่ [[Research/2026-06-17-ai-second-brain-method-experiment]]
|
|
32
|
+
- สร้าง runbook ใหม่ [[Runbooks/ai-second-brain-operating-sequence]]
|
|
33
|
+
- Wire sequence เข้า [[Shared/AI-Context-Index]], `CLAUDE.md`, `SANOOK.md`, `AGENTS.md`, `GEMINI.md`
|
|
34
|
+
- อัปเดต indexes, quality ledger, และ current-state
|
|
35
|
+
|
|
36
|
+
## Key Decisions
|
|
37
|
+
|
|
38
|
+
- Default method: **Scientific Loop Sequence**
|
|
39
|
+
- Sequence: Frame → Retrieve → Role → JIT Rules → Act → Write → Eval → Consolidate
|
|
40
|
+
- AI roles: Scientist, Cartographer, Librarian, Operator, Editor, Archivist
|
|
41
|
+
|
|
42
|
+
## Files Changed
|
|
43
|
+
|
|
44
|
+
- `second-brain/Shared/Scripts/ai-second-brain-method-eval.mjs`
|
|
45
|
+
- `second-brain/Research/2026-06-17-ai-second-brain-method-experiment.md`
|
|
46
|
+
- `second-brain/Runbooks/ai-second-brain-operating-sequence.md`
|
|
47
|
+
- `second-brain/Shared/AI-Context-Index.md`
|
|
48
|
+
- `second-brain/CLAUDE.md`
|
|
49
|
+
- `second-brain/SANOOK.md`
|
|
50
|
+
- `second-brain/AGENTS.md`
|
|
51
|
+
- `second-brain/GEMINI.md`
|
|
52
|
+
- `second-brain/Runbooks/_Index.md`
|
|
53
|
+
- `second-brain/Research/_Index.md`
|
|
54
|
+
- `second-brain/Shared/Scripts/_Index.md`
|
|
55
|
+
- `second-brain/Evals/quality-ledger.md`
|
|
56
|
+
- `second-brain/Shared/Operating-State/current-state.md`
|
|
57
|
+
|
|
58
|
+
## Next Steps
|
|
59
|
+
|
|
60
|
+
- ใช้ sequence ใหม่นี้กับงานจริง 3 session
|
|
61
|
+
- หลังครบ 3 session ให้ทบทวน [[Evals/quality-ledger]] และปรับ runbook ถ้าพบ retrieval miss หรือ context bloat
|
|
62
|
+
|
|
63
|
+
up:: [[Sessions/_Index]]
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: [session, session-log, cli, release-readiness]
|
|
3
|
+
note_type: session-log
|
|
4
|
+
created: 2026-06-18
|
|
5
|
+
updated: 2026-06-18
|
|
6
|
+
parent: "[[Sessions/_Index]]"
|
|
7
|
+
ai_surface: history
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 2026-06-18 — CLI Args Release Readiness
|
|
11
|
+
|
|
12
|
+
> Session evidence for validating the serve-port argument UX change and release readiness gates.
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
|
|
16
|
+
Validated the `serve --port` missing-value UX change and updated release evidence.
|
|
17
|
+
|
|
18
|
+
## What Was Tried
|
|
19
|
+
|
|
20
|
+
- Read diff for `src/cli-args.ts` and `src/cli-args.test.ts`
|
|
21
|
+
- Used [[Shared/Context-Packs/coding-release]] and [[Evals/second-brain-benchmarks]] as the task frame
|
|
22
|
+
- Ran targeted cli-args tests
|
|
23
|
+
- Ran full test, typecheck, build, diff check
|
|
24
|
+
- Smoke-tested built CLI error text for `serve --port=`
|
|
25
|
+
|
|
26
|
+
## Errors
|
|
27
|
+
|
|
28
|
+
- Initial smoke wrapper used a zsh-incompatible exit-code check. Re-ran the smoke command directly and verified the CLI output.
|
|
29
|
+
|
|
30
|
+
## Solutions
|
|
31
|
+
|
|
32
|
+
- `npm test -- src/cli-args.test.ts` passed
|
|
33
|
+
- `npm test` passed
|
|
34
|
+
- `npm run typecheck` passed
|
|
35
|
+
- `npm run build` passed
|
|
36
|
+
- `git diff --check` passed
|
|
37
|
+
- Built CLI prints `port ไม่ถูกต้อง: ต้องระบุค่า` for `serve --port=`
|
|
38
|
+
|
|
39
|
+
## Key Decisions
|
|
40
|
+
|
|
41
|
+
- Changelog should mention this user-facing UX fix because missing `--port` values used to leak `"undefined"` in the validation message.
|
|
42
|
+
- No further code change was needed after targeted tests passed.
|
|
43
|
+
|
|
44
|
+
## Files Changed
|
|
45
|
+
|
|
46
|
+
- `src/cli-args.ts`
|
|
47
|
+
- `src/cli-args.test.ts`
|
|
48
|
+
- `CHANGELOG.md`
|
|
49
|
+
- `second-brain/Evals/quality-ledger.md`
|
|
50
|
+
- `second-brain/Shared/Operating-State/current-state.md`
|
|
51
|
+
- `second-brain/Sessions/_Index.md`
|
|
52
|
+
- `second-brain/Sessions/2026-06-18-cli-args-release-readiness.md`
|
|
53
|
+
|
|
54
|
+
## Next Steps
|
|
55
|
+
|
|
56
|
+
- Review remaining worktree diff before commit/release.
|
|
57
|
+
- If another CLI UX edge case appears, add it near `src/cli-args.test.ts` and rerun targeted + full gates.
|
|
58
|
+
|
|
59
|
+
up:: [[Sessions/_Index]]
|