feat(cli): emit portable Markdown agents under .agents/agents
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 65/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- markdown, typescript, yaml
- 领域
- ai-infra-agents, cli, tooling
调研方向
Look at the aidd translate command in the CLI, likely in src/cli/translate.ts or similar. Examine the existing flat build logic that writes to .codex/agents/ and .agents/skills/. The task is to extend this to also write a Markdown file with YAML frontmatter to .agents/agents/<name>/agent.md. Check the existing collision and --force handling. Run the existing tests for the flat build to understand the output format and add new tests for the portable agent generation.
由索引模型根据 Issue 内容生成。
描述
Problem
Kimi Code and Antigravity both discover project agents under .agents/agents/, but AIDD does not emit a portable agent there.
The existing Codex flat build already writes portable Skills under .agents/skills/, while agents are emitted only as Codex TOML under .codex/agents/. Reusing that output on Kimi or Antigravity therefore loses the agents.
The two hosts accept one common shape: .agents/agents/<name>/agent.md. Kimi also accepts a flat <name>.md, but Antigravity ignores it silently, falls back to its default agent, and can still report a successful plugin validate result.
Outcome
As a developer using AIDD across Kimi Code and Antigravity, I want one generated Markdown agent projection under .agents/agents/<name>/agent.md, so both hosts discover and execute the same agent without separate Kimi and Antigravity copies or silent fallback.
Codex's existing TOML projection remains an intentional host-specific output.
Scope
- Extend
aidd translate <src> --to codex --as flatto emit each source agent twice:- the existing
.codex/agents/aidd-<plugin>-<agent>.toml; .agents/agents/aidd-<plugin>-<agent>/agent.md.
- the existing
- Use
aidd-<plugin>-<agent>as both the portable directory identity and generated YAMLname, preserving a non-empty sourcedescription. - Keep
.agents/skills/and the existing Codex TOML projection behavior unchanged. - Never emit the flat
.agents/agents/<name>.mdshape. - Use the flat build's existing collision contract: reject an occupied canonical destination unless
--forceapplies. Never remove or rewrite a different user-owned flat agent path. - Document the portable path, the retained Codex projection, Kimi's accepted shapes, Antigravity's directory-only constraint, and why
agy plugin validateis not execution evidence.
Acceptance criteria
- A source Markdown agent produces
.agents/agents/aidd-<plugin>-<agent>/agent.mdand the existing.codex/agents/aidd-<plugin>-<agent>.tomlin one Codex flat build. - The portable file parses as YAML-frontmatter Markdown;
nameanddescriptionare non-empty and match the normalized source identity and source description. - No
.agents/agents/<name>.mdfile is generated. - Existing
.agents/skills/output and the contents of the Codex TOML projection remain compatible, covered by regression assertions. - An occupied canonical portable destination follows the existing flat-build collision and
--forcebehavior; unrelated user-owned files remain untouched. - An isolated live fixture agent emits a unique
AIDD_PORTABLE_AGENT_OKmarker when invoked through both Kimi Code and Antigravity. - Each live proof records the host version, exact invocation, fixture revision, exit status, and shortest output proving discovery and execution from the generated project path.
- The Antigravity proof includes an invented-agent negative control, so silent fallback to the default agent cannot pass.
- Compatibility documentation records the shared shape, Codex exception, and host limitations.
Initial evidence was captured with Kimi Code 2.0.2 and Antigravity agy 1.2.5. A newer version may replace either witness only when the new version and result are recorded.
Out of scope
- Hook declarations or telemetry host support.
- Global configuration mutation or global installation.
- New Kimi Code or Antigravity tool profiles.
- Deleting or migrating user-authored flat agents.
References
- Source investigation: #859
- Kimi Code host delivery: #733
- Antigravity host delivery: #511
- 主要语言
- TypeScript
- 星标
- 481
- 派生
- 45
- 平均合并
- 19 小时 38 分钟
- 30 天内合并 PR
- 108
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ai-driven-dev/framework 的其他 Issue
-
refactor(aidd-orchestrator): the check zone says when to stop, and reviews its axes in one round 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
ai-driven-dev/framework#887 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
ai-driven-dev/framework#873 ·
-
难度 2/5 1-3 小时 新手友好度 85/100
ai-driven-dev/framework#872 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
ai-driven-dev/framework#625 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
ai-driven-dev/framework#467 · 1 条评论 ·
查看 ai-driven-dev/framework 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
mksglu/context-mode#1200 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
难度 2/5 1-3 小时 新手友好度 75/100
anthropics/claude-code#96687 ·
-
good first issue
难度 1/5 1 小时以内 新手友好度 95/100
AOSSIE-Org/DebateAI#582 · 2 条评论 ·