Initial publish v0.1.0: standalone workflow core (corpus + examples + guards)
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
# Gitea Adapter — 读模式(Read Patterns)
|
||||
|
||||
> Gitea adapter 参考实现(Increment 3,自 dogfood 源
|
||||
> `_shared/gitea-read-patterns.md` 拆分上提)。页名规范与寻址语义见
|
||||
> `core/rules/artifact-addressing.md`(后端中立契约,本文不重复)。
|
||||
> 实例基址 `<gitea-base-url>` 由实例配置提供,见 TERMINOLOGY.md。
|
||||
|
||||
Owner/repo 固定 `Octopus/octopus`。compaction 恢复从 Pattern 6
|
||||
(读工件索引)开始——源工单上的工件索引是上下文恢复的规范入口,
|
||||
硬编码页名路径仅作回退。
|
||||
|
||||
## Pattern 1: read-wiki-page
|
||||
|
||||
```
|
||||
gitea_wiki__get_page(owner="Octopus", repo="octopus", page_name="{slug}/{page_title}")
|
||||
```
|
||||
|
||||
常用页名(全量文法 + 例外枚举见 `core/rules/artifact-addressing.md` §2):
|
||||
|
||||
| 工件 | page_name |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| 验证报告 | `{slug}/05-verify-iteration-{N}` |
|
||||
| DAG 工件(单门) | `{epic-slug}/dag`;AC 子页 `{epic-slug}/dag-nodes/{node-id}`;覆盖子页 `{epic-slug}/dag-coverage` |
|
||||
| 评审终报(review-dag) | `{epic-slug}/reviews/review-dag/final/report` |
|
||||
| 评审终报(code) | `{slug}/reviews/code/final/report` |
|
||||
| 评审终报(code, DAG task) | `{epic-slug}/reviews/code/final/report-task-{node-id}` |
|
||||
| 验证(DAG milestone) | `{epic-slug}/05-verify-milestone-{M-id}` |
|
||||
| 验证(DAG task) | `{epic-slug}/05-verify-task-{node-id}` |
|
||||
| DAG 共享契约 | `{epic-slug}/shared/{file}` |
|
||||
| bugfix 附件 | `{slug}/repro-notes` · `{slug}/test-report` · `{slug}/bugfix-report` · `{slug}/ABORT` |
|
||||
| 原型/实现笔记 | `{slug}/prototype-debt` · `{slug}/spike-report` · `{slug}/impl-notes` |
|
||||
| 设计修订 | `{slug}/03-design-amendments` |
|
||||
| 审计工件 | `audit/{date}/{page}`,如 `audit/{date}/final/report` |
|
||||
| 移植工件 | `port-{name}/source-analysis/{file}` · `port-{name}/self-check` |
|
||||
| 回顾报告 | `_retrospectives/{cycle-name}` |
|
||||
| 回顾归档 | `_archive/{slug}/` |
|
||||
| 技能评估 | `_evals/{skill-name}/{page}` |
|
||||
| 浏览器调试证据 | `{slug}/verify/evidence/{name}`(临时截图留在工作区截图目录) |
|
||||
|
||||
历史只读页名(旧管线产物仍可读):`{slug}/01-stakeholder-interview`、
|
||||
`{slug}/02-requirements-index`、`{slug}/02-req-{seq:02d}-{title}`、
|
||||
`{slug}/02-03-req-design`、`{slug}/03-design-index`、
|
||||
`{slug}/03-design-{seq:02d}-{title}`、`{slug}/03-adr-{NNNN}-{title}`、
|
||||
`{slug}/04-plan-index`、`{slug}/04-plan-{seq:02d}-{title}`、
|
||||
`{slug}/roadmap/{page}`、`{slug}/shared/{file}`、
|
||||
`{slug}/reviews/{roadmap|design-space|plan}/final/report`。
|
||||
|
||||
**本地回退(wiki MCP 工具不可用)**:读本地 wiki 克隆(实例路径见
|
||||
TERMINOLOGY.md)。wiki 文件名 URL 编码(`/`→`%2F`,`.md` 前可能带
|
||||
`.-`),用 glob 而非固定路径解析:
|
||||
|
||||
```
|
||||
glob(pattern="*{slug}*{page-title}*.md", path="<local-wiki-clone>/{repo}-wiki/")
|
||||
```
|
||||
|
||||
## Pattern 2: read-issue
|
||||
|
||||
```
|
||||
gitea_issue__get(owner="Octopus", repo="octopus", index={issue_number})
|
||||
```
|
||||
|
||||
读工单详情、正文、元数据(label、assignee、milestone、state)。
|
||||
|
||||
## Pattern 3: read-issue-comments
|
||||
|
||||
```
|
||||
gitea_issue_comment__list(owner="Octopus", repo="octopus", index={issue_number})
|
||||
```
|
||||
|
||||
读工单全部评论(评审结果、状态备注、讨论线程)。
|
||||
|
||||
## Pattern 4: read-project-column-issues
|
||||
|
||||
```
|
||||
gitea_column__list_issues(owner="Octopus", repo="octopus",
|
||||
project_id={project_id}, column_id={column_id})
|
||||
```
|
||||
|
||||
看板列工单队列。project/column 发现:`gitea_project__list` +
|
||||
`gitea_column__list`。
|
||||
|
||||
## Pattern 5: read-review-status(CLI)
|
||||
|
||||
```
|
||||
octopus review status [--stage <stage>] [--sha <sha>] [--json]
|
||||
```
|
||||
|
||||
读评审收敛状态(commit status)。stage 值:`code`、`review-dag`、
|
||||
`audit-process`;省略 `--stage` 列出该提交全部状态。历史 stage 值
|
||||
(`design-space` 等)仅可查历史。
|
||||
|
||||
**stage-id → 评审目录映射**(Tier-1 本地 `reviews/{stage}/` 段):
|
||||
`review-code` → `code`;`review-dag` → `review-dag`;
|
||||
`audit-process` → `audit-process`。只有 code 评审用短名,不得发明其他。
|
||||
|
||||
收敛判定:context `pipeline/review-{stage}` 的 status 存在且
|
||||
state = `success`(= PASS 或 WARN,无未决 BLOCKER)。退出码 0 = 全部
|
||||
success,1 = 有 failure/error。
|
||||
|
||||
## Pattern 6: read-artifact-index(compaction 恢复主路径)
|
||||
|
||||
压缩后或新会话从工单种子恢复时,读工件索引评论(写侧 Pattern 10)
|
||||
而非猜测页名路径:
|
||||
|
||||
```
|
||||
gitea_issue__get(owner="Octopus", repo="octopus", index={issue_number})
|
||||
gitea_issue_comment__list(owner="Octopus", repo="octopus", index={issue_number})
|
||||
# 找 body 以 "## 工件索引"(遗留 "## Pipeline 工件追踪表")开头的评论
|
||||
gitea_wiki__get_page(owner="Octopus", repo="octopus", page_name=page_name)
|
||||
```
|
||||
|
||||
**位置列提取规则**:单元格形如 ``[`{page_name}`]({html_url})`` ——
|
||||
取**链接文本**(首个 `[` 与 `]` 之间、剥反引号)作为 page_name,不是
|
||||
href(含 `%2F`/`.-`,API 不认)。裸 page_name 单元格(无链接包裹)也
|
||||
接受:整格即 page_name。形如 `#comment-{id}` 的值改用
|
||||
`gitea_issue_comment__list` 读,不得喂给 `gitea_wiki__get_page`。
|
||||
|
||||
**重读规则**:重读集 = 全部 `CORE` 行;`ON-DEMAND` 行仅当前任务需要
|
||||
时读;绝不读 `ARCHIVE` 行。索引缺失(历史工单)→ 回退 issue body +
|
||||
`## 当前状态` + 硬编码页名路径。
|
||||
|
||||
**已归档索引**:无 `CORE` 行,恢复时重读集为空,按需直读目标工件
|
||||
(位置列 URL 仍有效);归档只改重读优先级,不改可访问性。
|
||||
Reference in New Issue
Block a user