== 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.
39 lines
2.1 KiB
Go
39 lines
2.1 KiB
Go
// Copyright 2026 Alibaba Group
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// gen.go is the single entry point for schema metadata generation. It isolates
|
|
// all //go:generate pragmas from business code so that:
|
|
// - schema_agent_metadata.go / schema_catalog.go contain only types + embed.
|
|
// - Generation is a standalone process (make generate-schema triggers this).
|
|
// - The 6-input → 1-output contract is documented in one place.
|
|
//
|
|
// Generation inputs (authored, reviewed):
|
|
// 1. schema_command_registry/ identity (canonical/aliases/navigation)
|
|
// 2. schema_hints/metadata/*.json safety (effect/risk/confirmation)
|
|
// 3. schema_hints/selection/*.json selection (use_when/avoid_when)
|
|
// 4. schema_mcp_metadata.json MCP server tool definitions
|
|
// 5. schema_parameter_bindings.json parameter type/property mappings
|
|
// 6. cobra command tree (Go runtime) flags/usage/required (reflected)
|
|
//
|
|
// Generation outputs (embedded at build):
|
|
// - schema_agent_metadata/*.json per-product agent metadata
|
|
// - schema_catalog/ per-product catalog shards
|
|
|
|
package cli
|
|
|
|
//go:generate go run ../generator/cmd_schema_agent_metadata -root ../.. -registry internal/cli/schema_command_registry -output-dir schema_agent_metadata -audit-output schema_agent_metadata_audit.json
|
|
// Rebuild all dependencies so the Catalog compiler cannot reuse the cli
|
|
// package cached by the preceding metadata generator with the old embedded
|
|
// JSON files.
|
|
//go:generate go run -a ../generator/cmd_schema_catalog -root ../.. -output schema_catalog
|