玉澜
51dc237d8a
feat: declarative LeafSpec command framework + schema generation/consumption separation
== LeafSpec command framework (internal/helpers/leaf.go) ==
Declarative command construction: LeafSpec/LeafFlag/NewLeafCommand with
Call (pluggable dispatch), LeafInt, PostMount, Trim, Validate. Collapses
per-command hand-written required validation, alias/env fallback, value
transform, and toolArgs assembly into one declarative path.
== devapp migration (28/31 commands) ==
All MCP-direct devapp leaf commands migrated to LeafSpec. Factories
(devAppCall/devAppCallCursor/devAppMeta) fold 33 repeated closures.
fakeDevAppRunner asserts toolArgs for every migrated command. 4 complex
commands (delete/robot submit/result/config) kept hand-written.
== Schema generation/consumption separation ==
- gen.go: isolated //go:generate pragmas from business code.
- command_meta.go: ResolveMeta(cliPath) -> CommandMeta{Identity,Safety,Selection}.
- command_safety.go: SafetyForCLIPath + RenderSafetyAnnotation; safety metadata
flows from embedded catalog into --help output.
- calendar.go HelpFunc fix: delegates to root HelpFunc at help-time.
- schema_catalog_structure.go: closed catalog structure validation gate.
== Registry + catalog per-product sharding ==
schema_command_registry and schema_catalog split into per-product shards,
eliminating concurrent-PR merge conflicts on these files.
== MCP metadata refresh tool ==
cmd/fetch_mcp_metadata: iterates 26 MCP server endpoints, merges with previous
data for cross-server interface_ref. make fetch-mcp-metadata target.
== AGENTS.md ==
Documents the generation/consumption split.
Verified: make policy exit 0, drift zero, all tests pass.
2026-07-19 09:38:43 +08:00
..
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 15:19:25 +08:00
2026-07-17 10:23:40 +08:00
2026-07-15 23:38:37 +08:00
2026-07-17 10:23:40 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:02:20 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-15 11:41:30 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 12:04:31 +08:00
2026-07-19 09:38:43 +08:00
2026-07-17 12:15:22 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 09:57:52 +08:00
2026-07-17 13:44:18 +08:00
2026-07-10 21:40:36 +08:00
2026-07-17 14:56:36 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 12:08:39 +08:00
2026-07-07 19:07:03 +08:00
2026-07-13 20:33:56 +08:00
2026-06-11 12:18:25 +08:00
2026-06-11 12:18:25 +08:00
2026-07-15 23:14:16 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-06-13 23:34:37 +08:00
2026-06-13 23:34:37 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 17:07:51 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-06-13 23:25:04 +08:00
2026-06-13 23:25:04 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 12:08:39 +08:00
2026-06-24 10:30:04 +08:00
2026-06-24 10:30:04 +08:00
2026-06-24 10:30:04 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:02:20 +08:00
2026-07-16 10:58:56 +08:00
2026-07-12 23:11:08 +08:00
2026-07-12 23:11:08 +08:00
2026-07-12 23:11:08 +08:00
2026-07-15 22:19:49 +08:00
2026-07-15 23:02:20 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 12:08:39 +08:00
2026-07-06 00:46:47 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-15 23:02:20 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-15 12:08:39 +08:00
2026-06-11 12:18:25 +08:00
2026-07-15 22:19:49 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 22:19:49 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 22:19:49 +08:00
2026-07-15 23:14:16 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 12:08:39 +08:00
2026-07-09 21:28:35 +08:00
2026-07-09 21:28:35 +08:00
2026-06-14 10:41:37 +08:00
2026-06-15 17:22:45 +08:00
2026-07-16 10:58:56 +08:00
2026-06-13 21:39:45 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 17:07:51 +08:00
2026-07-16 10:58:56 +08:00
2026-06-24 20:36:26 +08:00
2026-07-15 12:08:39 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 12:38:05 +08:00
2026-07-16 13:18:04 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-14 08:11:27 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 16:34:45 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-06-16 17:09:06 +08:00
2026-07-19 09:38:43 +08:00
2026-07-16 10:58:56 +08:00
2026-06-18 18:34:12 +08:00
2026-06-18 18:34:12 +08:00
2026-07-06 00:46:47 +08:00
2026-07-16 11:40:55 +08:00
2026-07-19 09:38:43 +08:00
2026-07-14 00:06:37 +08:00
2026-07-14 19:04:05 +08:00
2026-07-16 10:58:56 +08:00
2026-07-13 21:09:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 12:08:39 +08:00
2026-07-07 20:48:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-07 19:07:03 +08:00
2026-07-15 23:14:16 +08:00
2026-07-16 10:58:56 +08:00
2026-07-13 21:09:27 +08:00
2026-07-13 21:09:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-17 13:44:18 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:25:38 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-17 13:44:18 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 19:04:05 +08:00
2026-07-16 10:58:56 +08:00
2026-07-17 15:04:13 +08:00
2026-03-28 17:51:22 +08:00
2026-07-15 12:08:39 +08:00
2026-07-19 09:38:43 +08:00
2026-07-19 09:38:43 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-13 22:51:38 +08:00
2026-07-14 00:06:37 +08:00
2026-07-15 12:08:39 +08:00
2026-07-14 08:11:27 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-11 11:42:06 +08:00
2026-07-16 10:58:56 +08:00
2026-07-08 14:06:57 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:41:59 +08:00
2026-07-16 10:58:56 +08:00
2026-07-09 21:28:57 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 12:08:39 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-14 08:11:27 +08:00
2026-07-17 15:04:13 +08:00
2026-07-15 18:21:30 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:24:58 +08:00
2026-07-16 10:58:56 +08:00
2026-07-08 14:06:57 +08:00
2026-07-13 21:09:27 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:58:56 +08:00
2026-07-17 15:04:13 +08:00
2026-07-17 15:04:13 +08:00
2026-07-13 21:09:27 +08:00
2026-07-13 21:09:27 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-14 08:11:27 +08:00
2026-07-15 23:14:16 +08:00
2026-03-27 17:55:57 +08:00
2026-03-27 17:55:57 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-13 22:51:38 +08:00
2026-07-14 08:11:27 +08:00
2026-07-16 10:41:59 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 23:38:23 +08:00
2026-07-15 15:31:08 +08:00
2026-07-16 10:58:56 +08:00