developing-agent-forge 1.0.0

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.
Files changed (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/README.zh-CN.md +169 -0
  4. package/developing-forge.yaml +61 -0
  5. package/dist/agents/developer.d.ts +9 -0
  6. package/dist/agents/developer.d.ts.map +1 -0
  7. package/dist/agents/developer.js +29 -0
  8. package/dist/agents/developer.js.map +1 -0
  9. package/dist/agents/factory.d.ts +3 -0
  10. package/dist/agents/factory.d.ts.map +1 -0
  11. package/dist/agents/factory.js +11 -0
  12. package/dist/agents/factory.js.map +1 -0
  13. package/dist/agents/index.d.ts +7 -0
  14. package/dist/agents/index.d.ts.map +1 -0
  15. package/dist/agents/index.js +7 -0
  16. package/dist/agents/index.js.map +1 -0
  17. package/dist/agents/manager.d.ts +19 -0
  18. package/dist/agents/manager.d.ts.map +1 -0
  19. package/dist/agents/manager.js +45 -0
  20. package/dist/agents/manager.js.map +1 -0
  21. package/dist/agents/prompts.d.ts +3 -0
  22. package/dist/agents/prompts.d.ts.map +1 -0
  23. package/dist/agents/prompts.js +12 -0
  24. package/dist/agents/prompts.js.map +1 -0
  25. package/dist/agents/reviewer.d.ts +10 -0
  26. package/dist/agents/reviewer.d.ts.map +1 -0
  27. package/dist/agents/reviewer.js +30 -0
  28. package/dist/agents/reviewer.js.map +1 -0
  29. package/dist/agents/trajectory-optimizer.d.ts +19 -0
  30. package/dist/agents/trajectory-optimizer.d.ts.map +1 -0
  31. package/dist/agents/trajectory-optimizer.js +47 -0
  32. package/dist/agents/trajectory-optimizer.js.map +1 -0
  33. package/dist/agents/types.d.ts +16 -0
  34. package/dist/agents/types.d.ts.map +1 -0
  35. package/dist/agents/types.js +21 -0
  36. package/dist/agents/types.js.map +1 -0
  37. package/dist/cli.d.ts +3 -0
  38. package/dist/cli.d.ts.map +1 -0
  39. package/dist/cli.js +12 -0
  40. package/dist/cli.js.map +1 -0
  41. package/dist/index.d.ts +5 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +3 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/pipeline/development.d.ts +14 -0
  46. package/dist/pipeline/development.d.ts.map +1 -0
  47. package/dist/pipeline/development.js +55 -0
  48. package/dist/pipeline/development.js.map +1 -0
  49. package/dist/pipeline/index.d.ts +5 -0
  50. package/dist/pipeline/index.d.ts.map +1 -0
  51. package/dist/pipeline/index.js +5 -0
  52. package/dist/pipeline/index.js.map +1 -0
  53. package/dist/pipeline/pipeline.d.ts +78 -0
  54. package/dist/pipeline/pipeline.d.ts.map +1 -0
  55. package/dist/pipeline/pipeline.js +84 -0
  56. package/dist/pipeline/pipeline.js.map +1 -0
  57. package/dist/pipeline/pipelineskill.d.ts +81 -0
  58. package/dist/pipeline/pipelineskill.d.ts.map +1 -0
  59. package/dist/pipeline/pipelineskill.js +60 -0
  60. package/dist/pipeline/pipelineskill.js.map +1 -0
  61. package/dist/pipeline/revision.d.ts +10 -0
  62. package/dist/pipeline/revision.d.ts.map +1 -0
  63. package/dist/pipeline/revision.js +52 -0
  64. package/dist/pipeline/revision.js.map +1 -0
  65. package/metaskills/coding-style/METASKILL.md +214 -0
  66. package/package.json +62 -0
  67. package/skills/coding-style/SKILL.md +802 -0
  68. package/skills/coding-style/agents/openai.yaml +4 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,169 @@
1
+ # Developing Pipeline
2
+
3
+ [`src`](src) implements a goal-driven code-writing loop.
4
+
5
+ [中文说明](README.zh-CN.md)
6
+
7
+ ## What This Pipeline Does
8
+
9
+ The usual entry point is [`develop.sh`](develop.sh), which calls `npm run developing` with paths for:
10
+
11
+ - the goal file passed with `--goal-path`
12
+ - `skills/coding-style/SKILL.md`
13
+ - the artifact directory containing `TODO.md`
14
+ - the target codebase directory
15
+ - the development archive directory, passed through the current CLI option name `--achive-dir`
16
+
17
+ The pipeline works in the configured `--target-path`, reads the current high-level objective from `--goal-path`, maintains `TODO.md` under the configured `--artifact-path`, and archives per-iteration task/review artifacts under the configured archive directory.
18
+
19
+ The package exposes a TypeScript API from [`src/index.ts`](src/index.ts) and a CLI from [`src/cli.ts`](src/cli.ts).
20
+
21
+ ## Core Idea: Developing And Coding Style
22
+
23
+ `src` turns the current goal into a repeatable code-writing trajectory. `coding-manager` reads the current repository, the goal, and `TODO.md`, chooses one concrete developer task, `developer` edits the target repository, and `code-reviewer` either returns `ACCEPT` or sends revision feedback back into the same task.
24
+
25
+ The coding-style skill is [`skills/coding-style/SKILL.md`](skills/coding-style/SKILL.md). Its job is to control the code-writing agent's code structure and style. The upstream user task decides what to implement; this skill decides how to keep the implementation readable, local, low-coupling, and consistent with the current framework.
26
+
27
+ Every developer run loads the configured coding-style skill through `--coding-style-skill-path`. [`agents/developer.ts`](src/agents/developer.ts) prepends the instruction from [`agents/prompts.ts`](src/agents/prompts.ts): load and follow that skill before reading the repository, current goal, context documents named by the goal, and current task. That makes the writing agent use the same code-structure and style preferences across features, refactors, harness/test work, exports, and framework docs.
28
+
29
+ `coding-style` is generic for code-writing tasks. It does not decide task priority or repository template initialization. It only keeps code concise, readable, low-friction, easy to modify, and aligned with the existing repository structure.
30
+
31
+ Put durable code-structure and style preferences in [`metaskills/coding-style/METASKILL.md`](metaskills/coding-style/METASKILL.md), then run [`develop-skill.sh`](develop-skill.sh) from the repository root to update the skill.
32
+
33
+ ## Quick Start
34
+
35
+ From the repository root, run the prepared wrapper:
36
+
37
+ ```bash
38
+ bash develop.sh
39
+ ```
40
+
41
+ Use the wrapper with the conventional project paths listed above to write code under `output/codebase`.
42
+
43
+ Before each new task, update the current goal file:
44
+
45
+ ```bash
46
+ $EDITOR output/goal.md
47
+ bash develop.sh
48
+ ```
49
+
50
+ The prepared wrapper passes `--goal-path "output/goal.md"`. Use that file to describe the next high-level task you want the development loop to pursue.
51
+
52
+ ## TypeScript Development
53
+
54
+ This repository follows the same npm-based framework as `memory-forge` and `agent-forge`.
55
+
56
+ ```bash
57
+ npm ci
58
+ npm run check
59
+ npm run lint
60
+ npm run format:check
61
+ npm run build
62
+ ```
63
+
64
+ For local CLI development, use `npm run dev -- developing ...` or the prepared `npm run developing` and `npm run developing-skill` script aliases.
65
+
66
+ ## Goal File And Temporary TODO Context
67
+
68
+ `developing` and `developing-skill` now both accept `--goal-path <path>`. The pipeline reads that file once at the start of the run and passes its contents to `coding-manager`, `developer`, `code-reviewer`, and `trajectory-optimizer` as the current high-level objective.
69
+
70
+ Each time you want to execute the next new task, update the file passed to `--goal-path` before rerunning [`develop.sh`](develop.sh) or [`develop-skill.sh`](develop-skill.sh). Put any stable project contract, task context paths, constraints, or task focus directly in that goal file.
71
+
72
+ `TODO.md` under the configured `--artifact-path` is the current temporary task-memory file maintained by `coding-manager`. If the existing TODO content starts to mix old and new task context, you can manually delete the current TODO file, for example `output/developing/TODO.md`, before the next run. The pipeline will recreate an empty TODO file automatically.
73
+
74
+ This `TODO.md` workflow is a temporary memory mechanism. A more advanced memory mechanism should replace or extend it later, so treat the current file as a practical bridge for task continuity rather than the final long-term memory design.
75
+
76
+ ## Direct Command
77
+
78
+ `develop.sh` calls:
79
+
80
+ ```bash
81
+ npm run developing -- \
82
+ --config "developing-forge.yaml" \
83
+ --config "secret.yaml" \
84
+ --target-path "output/codebase" \
85
+ --achive-dir "output/developing-archives" \
86
+ --artifact-path "output/developing" \
87
+ --coding-style-skill-path "skills/coding-style" \
88
+ --goal-path "output/goal.md" \
89
+ --max-iterations "100" \
90
+ --max-revision-iterations "10"
91
+ ```
92
+
93
+ The current CLI option name is `--achive-dir`.
94
+
95
+ ## Options Reference
96
+
97
+ | Option | Description |
98
+ | --------------------------- | --------------------------------------------------------------------- |
99
+ | `--config` | One or more YAML config files loaded with `coding-agent-forge`. |
100
+ | `--target-path` | Target codebase directory. |
101
+ | `--achive-dir` | Development archive directory. |
102
+ | `--artifact-path` | Artifact directory containing `TODO.md`. |
103
+ | `--coding-style-skill-path` | Configured coding-style skill. |
104
+ | `--goal-path` | Markdown file containing the current objective and task context. |
105
+ | `--max-iterations` | Stops the outer loop if `coding-manager` has not returned `FINISHED`. |
106
+ | `--max-revision-iterations` | Limits the inner developer/reviewer repair loop. |
107
+
108
+ ## Main Flow
109
+
110
+ [`pipeline/pipeline.ts`](src/pipeline/pipeline.ts) parses CLI options and delegates the development loop to [`pipeline/development.ts`](src/pipeline/development.ts).
111
+
112
+ Each iteration does the following:
113
+
114
+ 1. `coding-manager` scans the current repository, the goal from `--goal-path`, and `TODO.md` in the artifact directory, then chooses one developer task.
115
+ 2. `developer` loads the configured coding-style skill, edits the repository, and reports what changed for review.
116
+ 3. `code-reviewer` reads the code and developer report, then returns exactly `ACCEPT` or revision feedback.
117
+ 4. If the reviewer returns feedback, `developer` fixes the same task and `code-reviewer` reviews again.
118
+ 5. After the review loop ends, the pipeline archives the task and reports, then asks `coding-manager` to update the TODO file.
119
+ 6. The pipeline stops when `coding-manager` returns `FINISHED` or `--max-iterations` is reached.
120
+
121
+ ## Developing-Skill And Trajectory Feedback
122
+
123
+ [`develop-skill.sh`](develop-skill.sh) calls the related `developing-skill` pipeline in [`pipeline/pipelineskill.ts`](src/pipeline/pipelineskill.ts). It runs the same development loop, adds `--metaskill-path`, and invokes `trajectory-optimizer` before the revision loop and after TODO updates so the coding-style skill can be improved from concrete development feedback.
124
+
125
+ The first `trajectory-optimizer` call runs in `scan` mode before the developer starts. It reads the target repository, the current coding-style skill, and the goal context so the optimizer has the same project context as the code-writing loop.
126
+
127
+ The second `trajectory-optimizer` call runs in `optimize` mode after the TODO update report is produced. It reads the metaskill, target repository, goal context, current task, revision report, and TODO update report; evaluates whether the skill produced a good modification trajectory; then edits the coding-style skill directly. The prompt focuses the optimizer on missing, misleading, or redundant guidance that affected task selection, coding, review, or TODO update.
128
+
129
+ The intended loop is:
130
+
131
+ 1. Add code-style preferences, failure modes, and review tips to [`metaskills/coding-style/METASKILL.md`](metaskills/coding-style/METASKILL.md).
132
+ 2. Run `bash develop-skill.sh`.
133
+ 3. Let `developer`, `code-reviewer`, `coding-manager`, and `trajectory-optimizer` expose where the current skill helped or failed.
134
+ 4. Inspect the updated [`skills/coding-style/SKILL.md`](skills/coding-style/SKILL.md), keep the useful changes, and repeat when new code-style preferences appear.
135
+
136
+ This is the coding-style version of skill self-improvement: the metaskill states what "good style guidance" means, the trajectory records how the agent actually modified code, and `develop-skill` uses that evidence to make the reusable skill more precise over time.
137
+
138
+ ## Output Artifacts
139
+
140
+ The pipeline maintains:
141
+
142
+ | Artifact | Where it lives |
143
+ | --------------------------- | ------------------------------------------------------------------------------------------------------------------- |
144
+ | `TODO.md` | Under the configured artifact directory; the temporary coding-manager-maintained task-memory file. |
145
+ | Timestamped archive folders | Under the configured archive directory; contains each selected task, per-revision reports, and TODO update reports. |
146
+
147
+ ## Important Files
148
+
149
+ | Path | Purpose |
150
+ | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
151
+ | [`pipeline/pipeline.ts`](src/pipeline/pipeline.ts) | CLI argument parsing and the base `developing` pipeline wrapper. |
152
+ | [`pipeline/development.ts`](src/pipeline/development.ts) | Outer development loop, archive creation, TODO updates, and per-agent handoff. |
153
+ | [`pipeline/revision.ts`](src/pipeline/revision.ts) | Inner developer/reviewer revision loop for one selected task. |
154
+ | [`pipeline/pipelineskill.ts`](src/pipeline/pipelineskill.ts) | `developing-skill` wrapper that adds trajectory optimization callbacks around the base loop. |
155
+ | [`agents/factory.ts`](src/agents/factory.ts) | Registers the developing coding manager, developer, and reviewer agents. |
156
+ | [`agents/types.ts`](src/agents/types.ts) | Shared workspace-aware base class and variables. |
157
+ | [`agents/manager.ts`](src/agents/manager.ts) | Maintains the TODO file and selects outer-loop tasks. |
158
+ | [`agents/developer.ts`](src/agents/developer.ts) | Edits the target repository using the shared coding-style skill. |
159
+ | [`agents/reviewer.ts`](src/agents/reviewer.ts) | Performs the read-only code review gate. |
160
+ | [`agents/trajectory-optimizer.ts`](src/agents/trajectory-optimizer.ts) | Scans the trajectory and proposes coding-style skill improvements for `developing-skill`. |
161
+
162
+ ## Troubleshooting
163
+
164
+ | Problem | Likely cause | Fix |
165
+ | ---------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
166
+ | The loop stops with `FINISHED` | `coding-manager` decided no further developer task is needed. | Inspect `TODO.md` in the artifact directory and the latest archive. |
167
+ | A task keeps returning revision feedback | The inner developer/reviewer repair loop has not reached `ACCEPT`. | Read the per-revision reports in the timestamped archive folder. |
168
+ | A new goal keeps inheriting old context | The temporary `TODO.md` still contains old task state. | Update `--goal-path`; if needed, delete `output/developing/TODO.md` before rerunning the wrapper. |
169
+ | The archive option looks misspelled | The current CLI option name is `--achive-dir`. | Use the current option name until the CLI changes. |
@@ -0,0 +1,169 @@
1
+ # Developing Pipeline
2
+
3
+ [`src`](src) 实现一个 goal-driven 的代码编写循环。
4
+
5
+ [English README](README.md)
6
+
7
+ ## 这个 Pipeline 做什么
8
+
9
+ 常用入口是 [`develop.sh`](develop.sh),它会调用 `npm run developing`,并传入以下路径:
10
+
11
+ - 通过 `--goal-path` 传入的目标文件
12
+ - `skills/coding-style/SKILL.md`
13
+ - 包含 `TODO.md` 的 artifact 目录
14
+ - 目标代码库目录
15
+ - development archive 目录;当前 CLI 参数名仍是 `--achive-dir`
16
+
17
+ pipeline 会在配置的 `--target-path` 中继续写代码,从 `--goal-path` 读取当前高层任务目标,维护配置的 `--artifact-path` 下的 `TODO.md`,并把每轮 task/review 产物归档到 archive 目录。
18
+
19
+ TypeScript API 从 [`src/index.ts`](src/index.ts) 导出,CLI 入口在 [`src/cli.ts`](src/cli.ts)。
20
+
21
+ ## 核心思想:Developing 和 Coding Style
22
+
23
+ `src` 会把当前 goal 变成一条可重复执行的代码编写 trajectory。`coding-manager` 读取当前 repo、goal 和 `TODO.md`,选择一个具体 developer task;`developer` 修改目标 repo;`code-reviewer` 返回严格的 `ACCEPT`,或者把 revision feedback 送回同一个 task。
24
+
25
+ coding-style skill 是 [`skills/coding-style/SKILL.md`](skills/coding-style/SKILL.md)。它的功能是控制写代码 agent 的代码结构和代码风格。上游用户任务决定要实现什么;这个 skill 决定如何让实现保持 readable、local、low-coupling,并和当前 framework 保持一致。
26
+
27
+ 每次 developer run 都会通过 `--coding-style-skill-path` 加载配置的 coding-style skill。[`agents/developer.ts`](src/agents/developer.ts) 会把 [`agents/prompts.ts`](src/agents/prompts.ts) 里的说明放到 developer prompt 前面:先 load and follow 这个 skill,再读取 repo、current goal、goal 中提到的上下文文档和 current task。这样负责写代码的 agent 在 feature、refactor、harness/test work、result exports 和 framework docs 等各种任务里,都会用同一套代码结构和风格偏好,保证输出的代码结构和风格统一。
28
+
29
+ `coding-style` 对代码编写任务是通用的。它不决定 task priority 或 repository template initialization;它只关心代码结构和风格,让代码 concise、readable、low-friction、easy to modify,并贴合现有 repo 结构。
30
+
31
+ 任何对代码结构和代码风格的长期偏好,都放进 [`metaskills/coding-style/METASKILL.md`](metaskills/coding-style/METASKILL.md),然后在仓库根目录运行 [`develop-skill.sh`](develop-skill.sh) 来更新这个 skill。
32
+
33
+ ## 快速开始
34
+
35
+ 在仓库根目录运行预设 wrapper:
36
+
37
+ ```bash
38
+ bash develop.sh
39
+ ```
40
+
41
+ 使用这个 wrapper 按上面列出的项目约定路径在 `output/codebase` 下写代码。
42
+
43
+ 每次要执行下一个新任务前,先更新当前 goal 文件:
44
+
45
+ ```bash
46
+ $EDITOR output/goal.md
47
+ bash develop.sh
48
+ ```
49
+
50
+ 预设 wrapper 会传入 `--goal-path "output/goal.md"`。用这个文件描述下一轮希望开发循环执行的高层任务目标。
51
+
52
+ ## TypeScript 开发
53
+
54
+ 这个仓库使用和 `memory-forge`、`agent-forge` 相同的 npm TypeScript 框架。
55
+
56
+ ```bash
57
+ npm ci
58
+ npm run check
59
+ npm run lint
60
+ npm run format:check
61
+ npm run build
62
+ ```
63
+
64
+ 本地调试 CLI 时,可以使用 `npm run dev -- developing ...`,也可以继续使用预设的 `npm run developing` 和 `npm run developing-skill` 脚本别名。
65
+
66
+ ## Goal 文件和临时 TODO 上下文
67
+
68
+ `developing` 和 `developing-skill` 现在都接受 `--goal-path <path>`。pipeline 会在运行开始时读取这个文件,并把其中内容作为当前 high-level objective 传给 `coding-manager`、`developer`、`code-reviewer` 和 `trajectory-optimizer`。
69
+
70
+ 每次想执行下一个新任务时,先更新 `--goal-path` 指向的文件,再重新运行 [`develop.sh`](develop.sh) 或 [`develop-skill.sh`](develop-skill.sh)。稳定的项目 contract、任务上下文路径、约束和这一次的任务重点都直接写进这个 goal 文件。
71
+
72
+ 配置的 `--artifact-path` 下的 `TODO.md` 是当前由 `coding-manager` 维护的临时任务记忆文件。如果现有 TODO 内容开始把旧任务和新任务上下文串味,可以在下一次运行前手动删除当前 TODO 文件,例如 `output/developing/TODO.md`。pipeline 会自动重新创建一个空 TODO 文件。
73
+
74
+ 这个 `TODO.md` workflow 是临时记忆机制。之后会实现更高级的记忆机制来替代或扩展它,所以现在可以把这个文件理解成用于保持任务连续性的过渡方案,而不是最终的长期记忆设计。
75
+
76
+ ## 直接命令
77
+
78
+ `develop.sh` 会调用:
79
+
80
+ ```bash
81
+ npm run developing -- \
82
+ --config "developing-forge.yaml" \
83
+ --config "secret.yaml" \
84
+ --target-path "output/codebase" \
85
+ --achive-dir "output/developing-archives" \
86
+ --artifact-path "output/developing" \
87
+ --coding-style-skill-path "skills/coding-style" \
88
+ --goal-path "output/goal.md" \
89
+ --max-iterations "100" \
90
+ --max-revision-iterations "10"
91
+ ```
92
+
93
+ 当前 CLI 参数名是 `--achive-dir`。
94
+
95
+ ## 参数参考
96
+
97
+ | 参数 | 说明 |
98
+ | --------------------------- | ---------------------------------------------------------------- |
99
+ | `--config` | 用 `coding-agent-forge` 加载的一个或多个 YAML config 文件。 |
100
+ | `--target-path` | 目标代码库目录。 |
101
+ | `--achive-dir` | Development archive 目录。 |
102
+ | `--artifact-path` | 包含 `TODO.md` 的 artifact 目录。 |
103
+ | `--coding-style-skill-path` | 配置的 coding-style skill。 |
104
+ | `--goal-path` | 包含当前 high-level objective 和 task context 的 Markdown 文件。 |
105
+ | `--max-iterations` | 当 `coding-manager` 尚未返回 `FINISHED` 时限制外层循环。 |
106
+ | `--max-revision-iterations` | 限制内层 developer/reviewer 修复循环。 |
107
+
108
+ ## 主流程
109
+
110
+ [`pipeline/pipeline.ts`](src/pipeline/pipeline.ts) 负责解析 CLI 参数,并把开发循环交给 [`pipeline/development.ts`](src/pipeline/development.ts)。
111
+
112
+ 每轮迭代执行以下步骤:
113
+
114
+ 1. `coding-manager` 扫描当前 repo、`--goal-path` 中的 goal,以及 artifact 目录中的 `TODO.md`,然后选择一个 developer task。
115
+ 2. `developer` 加载配置的 coding-style skill,修改 repo,并报告自己改了哪些内容给 reviewer。
116
+ 3. `code-reviewer` 阅读代码和 developer report,返回严格的 `ACCEPT` 或 revision feedback。
117
+ 4. 如果 reviewer 返回 feedback,`developer` 继续修同一个任务,然后 `code-reviewer` 再审。
118
+ 5. review 循环结束后,pipeline 归档 task 和 reports,然后让 `coding-manager` 更新 TODO 文件。
119
+ 6. 当 `coding-manager` 返回 `FINISHED` 或达到 `--max-iterations` 时停止。
120
+
121
+ ## developing-skill 和 Trajectory Feedback
122
+
123
+ [`develop-skill.sh`](develop-skill.sh) 会调用 [`pipeline/pipelineskill.ts`](src/pipeline/pipelineskill.ts) 中的 `developing-skill` pipeline。它复用同一套开发循环,额外传入 `--metaskill-path`,并在 revision loop 前和 TODO 更新后调用 `trajectory-optimizer`,让 coding-style skill 能根据具体开发反馈继续优化。
124
+
125
+ 第一次 `trajectory-optimizer` 调用发生在 developer 开始前,使用 `scan` 模式。它会读取目标 repo、当前 coding-style skill 和 goal context,让 optimizer 拿到和代码编写循环相同的项目上下文。
126
+
127
+ 第二次 `trajectory-optimizer` 调用发生在 TODO update report 生成后,使用 `optimize` 模式。它会读取 metaskill、target repo、goal context、current task、revision report 和 TODO update report;根据 [`metaskills/coding-style/METASKILL.md`](metaskills/coding-style/METASKILL.md) 中写的偏好评估这次修改 trajectory 的质量;然后直接修改 coding-style skill。这个 prompt 会重点检查哪些 guidance 缺失、误导或冗余,并看这些问题是否影响 task selection、coding、review 或 TODO update。
128
+
129
+ 推荐的使用循环是:
130
+
131
+ 1. 把代码风格偏好、failure modes 和 review tips 写进 [`metaskills/coding-style/METASKILL.md`](metaskills/coding-style/METASKILL.md)。
132
+ 2. 运行 `bash develop-skill.sh`。
133
+ 3. 让 `developer`、`code-reviewer`、`coding-manager` 和 `trajectory-optimizer` 暴露当前 skill 在真实开发轨迹里哪里有效、哪里失效。
134
+ 4. 检查更新后的 [`skills/coding-style/SKILL.md`](skills/coding-style/SKILL.md),保留有用修改;当出现新的代码偏好时继续重复。
135
+
136
+ 这就是 coding-style 版本的 skill self-improvement:metaskill 说明什么是“好的代码风格 guidance”,trajectory 记录 agent 实际如何修改代码,`develop-skill` 根据这些证据修改可复用的 skill,让这个 skill 越用越强。
137
+
138
+ ## 输出产物
139
+
140
+ pipeline 会维护:
141
+
142
+ | Artifact | 位置 |
143
+ | -------------------- | -------------------------------------------------------------------------------------------- |
144
+ | `TODO.md` | 配置的 artifact 目录下,由 coding-manager 维护的临时任务记忆文件。 |
145
+ | 按时间戳归档的文件夹 | 配置的 archive 目录下,保存 selected task、每次 revision 的 reports 和 TODO update reports。 |
146
+
147
+ ## 重要文件
148
+
149
+ | 路径 | 作用 |
150
+ | ---------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
151
+ | [`pipeline/pipeline.ts`](src/pipeline/pipeline.ts) | CLI 参数解析和基础 `developing` pipeline 包装。 |
152
+ | [`pipeline/development.ts`](src/pipeline/development.ts) | 外层开发循环、archive 创建、TODO 更新和各 agent 之间的交接。 |
153
+ | [`pipeline/revision.ts`](src/pipeline/revision.ts) | 针对一个 selected task 的内层 developer/reviewer revision loop。 |
154
+ | [`pipeline/pipelineskill.ts`](src/pipeline/pipelineskill.ts) | 给基础开发循环增加 trajectory optimization callbacks 的 `developing-skill` 包装。 |
155
+ | [`agents/factory.ts`](src/agents/factory.ts) | 注册 developing coding manager、developer 和 reviewer agents。 |
156
+ | [`agents/types.ts`](src/agents/types.ts) | 共享的 workspace-aware base class 和变量定义。 |
157
+ | [`agents/manager.ts`](src/agents/manager.ts) | 维护 TODO 文件并选择外层任务。 |
158
+ | [`agents/developer.ts`](src/agents/developer.ts) | 使用共享 coding-style skill 修改目标 repo。 |
159
+ | [`agents/reviewer.ts`](src/agents/reviewer.ts) | 执行只读代码审阅 gate。 |
160
+ | [`agents/trajectory-optimizer.ts`](src/agents/trajectory-optimizer.ts) | 扫描开发轨迹,并为 `developing-skill` 提出 coding-style skill 优化建议。 |
161
+
162
+ ## 常见问题
163
+
164
+ | 问题 | 常见原因 | 解决办法 |
165
+ | ---------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------- |
166
+ | Loop 以 `FINISHED` 停止 | `coding-manager` 判断不需要继续选择 developer task。 | 检查 artifact 目录中的 `TODO.md` 和最新 archive。 |
167
+ | 某个任务持续返回 revision feedback | 内层 developer/reviewer 修复循环尚未达到 `ACCEPT`。 | 阅读按时间戳归档的 per-revision reports。 |
168
+ | 新 goal 仍然继承旧上下文 | 临时 `TODO.md` 里还保留旧任务状态。 | 更新 `--goal-path`;必要时先删除 `output/developing/TODO.md`,再重新运行 wrapper。 |
169
+ | Archive 参数看起来拼错 | 当前 CLI 参数名就是 `--achive-dir`。 | 在 CLI 改名前继续使用当前参数名。 |
@@ -0,0 +1,61 @@
1
+ # Sample configuration for developing-agent-forge.
2
+ #
3
+ # Keep these paths consistent:
4
+ # - the CLI's --target-path
5
+ # - each developing agent's constants.workspacePath
6
+ # - the developer/reviewer threads' workingDirectory
7
+ #
8
+ # Put provider credentials in secret.yaml (git-ignored) and pass it after this
9
+ # file: --config developing-forge.yaml --config secret.yaml
10
+
11
+ runtimes:
12
+ codex:
13
+ kind: codex
14
+
15
+ threads:
16
+ coding-manager-runner:
17
+ runtime: codex
18
+ options:
19
+ model: gpt-5.5
20
+ sandboxMode: danger-full-access
21
+ workingDirectory: &targetWorkspace output/codebase
22
+
23
+ developer-runner:
24
+ runtime: codex
25
+ options:
26
+ model: gpt-5.3-codex-spark
27
+ sandboxMode: danger-full-access
28
+ workingDirectory: *targetWorkspace
29
+
30
+ code-reviewer-runner:
31
+ runtime: codex
32
+ options:
33
+ model: gpt-5.5
34
+ sandboxMode: danger-full-access # read-only review agent
35
+ workingDirectory: *targetWorkspace
36
+
37
+ trajectory-optimizer-runner:
38
+ runtime: codex
39
+ options:
40
+ model: gpt-5.5
41
+ sandboxMode: danger-full-access
42
+ workingDirectory: .
43
+
44
+ agents:
45
+ coding-manager:
46
+ thread: coding-manager-runner
47
+ constants:
48
+ workspacePath: *targetWorkspace
49
+
50
+ developer:
51
+ thread: developer-runner
52
+ constants:
53
+ workspacePath: *targetWorkspace
54
+
55
+ code-reviewer:
56
+ thread: code-reviewer-runner
57
+ constants:
58
+ workspacePath: *targetWorkspace
59
+
60
+ trajectory-optimizer:
61
+ thread: trajectory-optimizer-runner
@@ -0,0 +1,9 @@
1
+ import { DevelopingAgent, type DevelopingAgentVariables } from "./types.js";
2
+ export type DeveloperVariables = DevelopingAgentVariables & {
3
+ currentTask: string;
4
+ reviewerReport?: string;
5
+ };
6
+ export declare class DeveloperAgent extends DevelopingAgent<DeveloperVariables> {
7
+ protected buildPrompt(variables: Readonly<DeveloperVariables>): string;
8
+ }
9
+ //# sourceMappingURL=developer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../src/agents/developer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,cAAe,SAAQ,eAAe,CAAC,kBAAkB,CAAC;IACrE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,MAAM;CAyBvE"}
@@ -0,0 +1,29 @@
1
+ import { codingStyleSkillInstruction, goalInstruction } from "./prompts.js";
2
+ import { DevelopingAgent } from "./types.js";
3
+ export class DeveloperAgent extends DevelopingAgent {
4
+ buildPrompt(variables) {
5
+ const codingStyleSkillPath = this.workspaceRelativePath(variables.codingStyleSkillPath);
6
+ const targetPath = this.workspaceRelativePath(variables.targetPath);
7
+ const reviewerReport = variables.reviewerReport ?? "(none)";
8
+ const codingStyleSkillInstructionText = codingStyleSkillInstruction(codingStyleSkillPath);
9
+ const goalInstructionText = goalInstruction(variables.goal);
10
+ return `
11
+ ${codingStyleSkillInstructionText}
12
+
13
+ Work in the target repository at ${targetPath}/.
14
+
15
+ ${goalInstructionText}
16
+
17
+ Current developer task:
18
+ ${variables.currentTask}
19
+
20
+ Reviewer report:
21
+ ${reviewerReport}
22
+
23
+ Modify the target repository code for the current task. If a reviewer report is present, update the code according to that report.
24
+
25
+ Output a concise developer report with the main changes.
26
+ `;
27
+ }
28
+ }
29
+ //# sourceMappingURL=developer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/agents/developer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAO5E,MAAM,OAAO,cAAe,SAAQ,eAAmC;IAC3D,WAAW,CAAC,SAAuC;QAC3D,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC;QAC5D,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,OAAO;EACT,+BAA+B;;mCAEE,UAAU;;EAE3C,mBAAmB;;;EAGnB,SAAS,CAAC,WAAW;;;EAGrB,cAAc;;;;;CAKf,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactoryMap } from "coding-agent-forge";
2
+ export declare const agentFactories: AgentFactoryMap;
3
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/agents/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAO1D,eAAO,MAAM,cAAc,EAAE,eAK5B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { DeveloperAgent } from "./developer.js";
2
+ import { CodingManagerAgent } from "./manager.js";
3
+ import { CodeReviewerAgent } from "./reviewer.js";
4
+ import { TrajectoryOptimizerAgent } from "./trajectory-optimizer.js";
5
+ export const agentFactories = {
6
+ "coding-manager": (thread, constants) => new CodingManagerAgent(thread, constants),
7
+ developer: (thread, constants) => new DeveloperAgent(thread, constants),
8
+ "code-reviewer": (thread, constants) => new CodeReviewerAgent(thread, constants),
9
+ "trajectory-optimizer": (thread, constants) => new TrajectoryOptimizerAgent(thread, constants),
10
+ };
11
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/agents/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;IAClF,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;IACvE,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;IAChF,sBAAsB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC;CAC/F,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { CodingManagerAgent, type CodingManagerVariables } from "./manager.js";
2
+ export { DeveloperAgent, type DeveloperVariables } from "./developer.js";
3
+ export { CodeReviewerAgent, type CodeReviewerVariables } from "./reviewer.js";
4
+ export { TrajectoryOptimizerAgent, type TrajectoryOptimizerVariables, } from "./trajectory-optimizer.js";
5
+ export { DevelopingAgent, type DevelopingAgentConstants, type DevelopingAgentVariables, } from "./types.js";
6
+ export { agentFactories } from "./factory.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EACf,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { CodingManagerAgent } from "./manager.js";
2
+ export { DeveloperAgent } from "./developer.js";
3
+ export { CodeReviewerAgent } from "./reviewer.js";
4
+ export { TrajectoryOptimizerAgent, } from "./trajectory-optimizer.js";
5
+ export { DevelopingAgent, } from "./types.js";
6
+ export { agentFactories } from "./factory.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA+B,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { DevelopingAgent, type DevelopingAgentVariables } from "./types.js";
2
+ type SelectCodingManagerVariables = DevelopingAgentVariables & {
3
+ todoPath: string;
4
+ finishMark: string;
5
+ phase: "select";
6
+ };
7
+ type UpdateCodingManagerVariables = DevelopingAgentVariables & {
8
+ todoPath: string;
9
+ finishMark: string;
10
+ phase: "update";
11
+ currentTask: string;
12
+ revisionReport: string;
13
+ };
14
+ export type CodingManagerVariables = SelectCodingManagerVariables | UpdateCodingManagerVariables;
15
+ export declare class CodingManagerAgent extends DevelopingAgent<CodingManagerVariables> {
16
+ protected buildPrompt(variables: Readonly<CodingManagerVariables>): string;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,GAAG,4BAA4B,CAAC;AAEjG,qBAAa,kBAAmB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAC7E,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;CA0C3E"}
@@ -0,0 +1,45 @@
1
+ import { codingStyleSkillInstruction, goalInstruction } from "./prompts.js";
2
+ import { DevelopingAgent } from "./types.js";
3
+ export class CodingManagerAgent extends DevelopingAgent {
4
+ buildPrompt(variables) {
5
+ const codingStyleSkillPath = this.workspaceRelativePath(variables.codingStyleSkillPath);
6
+ const targetPath = this.workspaceRelativePath(variables.targetPath);
7
+ const todoPath = this.workspaceRelativePath(variables.todoPath);
8
+ const codingStyleSkillInstructionText = codingStyleSkillInstruction(codingStyleSkillPath);
9
+ const goalInstructionText = goalInstruction(variables.goal);
10
+ if (variables.phase === "update") {
11
+ return `
12
+ ${codingStyleSkillInstructionText}
13
+
14
+ Update the TODO file after a developer task.
15
+ Work in the TODO file at ${todoPath}. Scan the target repository at ${targetPath}/ before editing it.
16
+
17
+ ${goalInstructionText}
18
+
19
+ Current developer task:
20
+ ${variables.currentTask}
21
+
22
+ Revision report:
23
+ ${variables.revisionReport}
24
+
25
+ The revision report lists each Developer report and Reviewer report from the review loop, ending with whether the Reviewer accepted the changes or the loop reached the max revision iterations.
26
+
27
+ Update the TODO so completed work and future developer tasks match the current repository. If you find a better future plan, update it too.
28
+ `;
29
+ }
30
+ return `
31
+ ${codingStyleSkillInstructionText}
32
+
33
+ Select the next developer task for the target repository.
34
+ Scan the target repository at ${targetPath}/ and the TODO file at ${todoPath}.
35
+
36
+ ${goalInstructionText}
37
+
38
+ Choose exactly one new bounded task for the Developer.
39
+
40
+ When no further developer task is needed, return exactly:
41
+ ${variables.finishMark}
42
+ `;
43
+ }
44
+ }
45
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAkB5E,MAAM,OAAO,kBAAmB,SAAQ,eAAuC;IACnE,WAAW,CAAC,SAA2C;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO;EACX,+BAA+B;;;2BAGN,QAAQ,mCAAmC,UAAU;;EAE9E,mBAAmB;;;EAGnB,SAAS,CAAC,WAAW;;;EAGrB,SAAS,CAAC,cAAc;;;;;CAKzB,CAAC;QACE,CAAC;QAED,OAAO;EACT,+BAA+B;;;gCAGD,UAAU,0BAA0B,QAAQ;;EAE1E,mBAAmB;;;;;EAKnB,SAAS,CAAC,UAAU;CACrB,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export declare function codingStyleSkillInstruction(codingStyleSkillPath: string): string;
2
+ export declare function goalInstruction(goal: string): string;
3
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agents/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpD"}
@@ -0,0 +1,12 @@
1
+ export function codingStyleSkillInstruction(codingStyleSkillPath) {
2
+ return `Load and follow the skill at ${codingStyleSkillPath}. It describes how to keep repository code concise, readable, low-friction, and easy to modify.`;
3
+ }
4
+ export function goalInstruction(goal) {
5
+ return `
6
+ Current goal:
7
+ ${goal}
8
+
9
+ Use this goal as the current high-level objective.
10
+ `;
11
+ }
12
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agents/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CAAC,oBAA4B;IACtE,OAAO,gCAAgC,oBAAoB,iGAAiG,CAAC;AAC/J,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;;EAEP,IAAI;;;CAGL,CAAC;AACF,CAAC"}