Skip to content

Commit 0ca0725

Browse files
authored
chore: 发布 devflow-skills 0.2.9
发布 devflow-skills 0.2.9。
1 parent e259690 commit 0ca0725

98 files changed

Lines changed: 621 additions & 4802 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/plugins/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"name": "devflow-skills",
99
"source": {
1010
"source": "local",
11-
"path": "./plugins/devflow-skills"
11+
"path": "."
1212
},
1313
"policy": {
1414
"installation": "AVAILABLE",

.codex-plugin/assets/app-icon-small.svg

Lines changed: 0 additions & 24 deletions
This file was deleted.

.codex-plugin/assets/app-icon.png

-3.95 KB
Binary file not shown.

.codex-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"name": "devflow-skills",
99
"source": {
1010
"source": "local",
11-
"path": "./plugins/devflow-skills"
11+
"path": "."
1212
},
1313
"policy": {
1414
"installation": "AVAILABLE",

.codex-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "devflow-skills",
3-
"version": "0.2.8",
3+
"version": "0.2.9",
44
"description": "DevFlow engineering workflow skills for Codex: routing, DDD, TDD, planning, execution, debugging, review, verification, and branch finishing.",
55
"composerIcon": "./assets/app-icon-small.svg",
66
"logo": "./assets/app-icon.png",

.github/workflows/version-check.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,63 @@ jobs:
3939
fi
4040
4141
echo "All versions aligned: $PKG_VERSION"
42+
- name: Check managed Codex asset hash
43+
run: |
44+
set -euo pipefail
45+
HASH_FILE="skills/df-codex-assets/assets/hash.txt"
46+
COMPUTED_HASH=$(bun skills/df-codex-assets/scripts/df-codex-assets.ts compute)
47+
STORED_HASH=$(tr -d '[:space:]' < "$HASH_FILE")
48+
49+
echo "stored hash: $STORED_HASH"
50+
echo "computed hash: $COMPUTED_HASH"
51+
52+
if [ "$COMPUTED_HASH" != "$STORED_HASH" ]; then
53+
echo "::error::Managed Codex asset hash is stale."
54+
echo "::error::Correct hash: $COMPUTED_HASH"
55+
echo "::error::Update with: bun skills/df-codex-assets/scripts/df-codex-assets.ts compute > $HASH_FILE"
56+
exit 1
57+
fi
58+
- name: Check managed Codex assets on version tag
59+
run: |
60+
set -euo pipefail
61+
VERSION=$(bun -e "console.log(require('./package.json').version)")
62+
TAG="v${VERSION}"
63+
REPO=$(bun -e "const p=require('./.codex-plugin/plugin.json'); const repo=String(p.repository||'https://github.com/LiTeXz/devflow-skills'); const m=repo.match(/github\\.com[:/]([^/]+\\/[^/.#]+)(?:\\.git)?/); console.log(m ? m[1] : 'LiTeXz/devflow-skills')")
64+
HASH_FILE="skills/df-codex-assets/assets/hash.txt"
65+
STORED_HASH=$(tr -d '[:space:]' < "$HASH_FILE")
66+
67+
if ! git ls-remote --exit-code --tags "https://github.com/${REPO}.git" "refs/tags/${TAG}" >/dev/null 2>&1; then
68+
echo "::error::Required managed asset tag ${TAG} does not exist in ${REPO}."
69+
exit 1
70+
fi
71+
72+
TMP_DIR=$(mktemp -d)
73+
cleanup() {
74+
rm -rf "$TMP_DIR"
75+
}
76+
trap cleanup EXIT
77+
78+
while IFS= read -r path; do
79+
mkdir -p "$TMP_DIR/$(dirname "$path")"
80+
url="https://raw.githubusercontent.com/${REPO}/${TAG}/${path}"
81+
if ! curl --fail --show-error --location "$url" --output "$TMP_DIR/$path"; then
82+
echo "::error::Missing managed asset on ${TAG}: ${path}"
83+
exit 1
84+
fi
85+
done < <(bun -e "import { MANAGED_ASSET_PATHS } from './skills/df-codex-assets/scripts/df-codex-assets.ts'; console.log(MANAGED_ASSET_PATHS.join('\\n'))")
86+
87+
mkdir -p "$TMP_DIR/skills/df-codex-assets/scripts" "$TMP_DIR/skills/df-codex-assets/assets"
88+
cp skills/df-codex-assets/scripts/df-codex-assets.ts "$TMP_DIR/skills/df-codex-assets/scripts/df-codex-assets.ts"
89+
cp "$HASH_FILE" "$TMP_DIR/$HASH_FILE"
90+
91+
TAG_HASH=$(PLUGIN_ROOT="$TMP_DIR" bun "$TMP_DIR/skills/df-codex-assets/scripts/df-codex-assets.ts" compute)
92+
echo "tag: $TAG"
93+
echo "tag hash: $TAG_HASH"
94+
echo "stored hash: $STORED_HASH"
95+
96+
if [ "$TAG_HASH" != "$STORED_HASH" ]; then
97+
echo "::error::Managed Codex assets on ${TAG} do not match ${HASH_FILE}."
98+
echo "::error::Tag hash: $TAG_HASH"
99+
echo "::error::Stored hash: $STORED_HASH"
100+
exit 1
101+
fi

README.md

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,24 @@ DevFlow Skills 是一组面向 Codex 和 OpenCode 的工程工作流 skills。
2727
## 安装为 Codex Plugin
2828

2929
本仓库只支持 Codex Plugin 安装方式,避免独立 skill 安装命令与插件目录结构漂移。
30-
Marketplace 安装包入口位于 `plugins/devflow-skills/`。Codex 安装时只会复制该入口目录自身的内容
31-
因此入口目录必须包含完整插件包文件,而不能依赖 `../../` 指向仓库根目录
30+
Marketplace 安装包入口就是仓库根目录。Codex 安装时从根目录读取完整插件包文件
31+
因此 `.codex-plugin/plugin.json``skills/``hooks/``assets/` 是唯一包来源
3232

3333
关键文件位于:
3434

3535
```text
36-
.agents/plugins/marketplace.json
37-
.codex-plugin/marketplace.json
38-
plugins/devflow-skills/.codex-plugin/plugin.json
39-
plugins/devflow-skills/skills/
40-
plugins/devflow-skills/hooks/
41-
plugins/devflow-skills/assets/
36+
Codex marketplace manifests
37+
.codex-plugin/plugin.json
38+
skills/
39+
hooks/
40+
assets/
4241
```
4342

44-
Codex CLI 0.132.0 识别 `.agents/plugins/marketplace.json` 作为 marketplace manifest;
45-
`.codex-plugin/marketplace.json` 保留为兼容副本。两个 marketplace manifest 必须保持同步,
46-
并都使用 `local` source 指向 `./plugins/devflow-skills`
47-
插件安装入口是 `plugins/devflow-skills/.codex-plugin/plugin.json`
48-
根目录 `skills/``hooks/``assets/``.codex-plugin/plugin.json` 是开发和历史兼容副本,
49-
必须和 `plugins/devflow-skills/` 下的安装包内容保持同步。
43+
Codex CLI 0.132.0 识别 agents marketplace manifest;
44+
codex-plugin marketplace manifest 保留为兼容副本。两个 marketplace manifest 必须保持同步,
45+
并都使用 `local` source 指向仓库根目录 `.`
46+
插件安装入口是 `.codex-plugin/plugin.json`
47+
根目录 `skills/``hooks/``assets/` 是唯一需要维护的插件包内容。
5048

5149
从远程仓库添加 marketplace、刷新缓存并安装插件:
5250

@@ -114,7 +112,6 @@ OpenCode 插件会复用同一套保护规则:主 Agent 禁写、subagent 可
114112
.codex-plugin/plugin.json
115113
.codex-plugin/assets/
116114
.opencode/plugin/devflow-skills.ts
117-
plugins/devflow-skills/ # Codex marketplace 安装包入口
118115
assets/
119116
hooks/
120117
scripts/

agents/df-publisher.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# devflow-version = "0.2.8"
1+
# devflow-version = "0.2.9"
22
name = "df-publisher"
33
description = "唯一被授权执行 git 和 gh 命令的子代理。负责提交、推送、PR、合并、发布等全部 git/github 操作。遵守保护分支规则。"
44
nickname_candidates = ["df-publisher", "publisher"]

hooks/hooks.codex.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
"SessionStart": [
44
{
55
"hooks": [
6+
{
7+
"type": "command",
8+
"command": "PLUGIN_ROOT=\"${PLUGIN_ROOT}\" bun \"${PLUGIN_ROOT}/skills/df-codex-assets/scripts/df-codex-assets.ts\" hydrate",
9+
"statusMessage": "devflow-skills: hydrating managed Codex assets"
10+
},
611
{
712
"type": "command",
813
"command": "PLUGIN_ROOT=\"${PLUGIN_ROOT}\" bun \"${PLUGIN_ROOT}/scripts/prevent-git-github-operations.ts\"",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "devflow-skills",
3-
"version": "0.2.8",
3+
"version": "0.2.9",
44
"type": "module",
55
"private": true,
66
"scripts": {

0 commit comments

Comments
 (0)