fix: 为所有 skill 的 .workflow/ 路径添加 projectRoot 前缀

从子目录执行 skill 时,相对路径 .workflow/ 会导致产物落到错误位置。
通过 git rev-parse --show-toplevel || pwd 检测项目根目录,
所有 .workflow/ 路径引用统一加上 {projectRoot} 前缀确保路径正确。

涉及 72 个文件,覆盖 20+ 个 skill。
This commit is contained in:
catlog22
2026-02-08 13:46:48 +08:00
parent 71faaf43a8
commit 54c3234d84
72 changed files with 904 additions and 482 deletions

View File

@@ -20,7 +20,7 @@ Complete CCW Loop session and generate summary report.
### Step 1: Verify Control Signals
```javascript
const state = JSON.parse(Read(`.workflow/.loop/${loopId}.json`))
const state = JSON.parse(Read(`${projectRoot}/.workflow/.loop/${loopId}.json`))
if (state.status !== 'running') {
return {
@@ -174,7 +174,7 @@ state.updated_at = timestamp
state.skill_state.last_action = 'COMPLETE'
state.skill_state.summary = stats
Write(`.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
Write(`${projectRoot}/.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
```
## Output Format
@@ -190,8 +190,8 @@ ACTION_RESULT:
}
FILES_UPDATED:
- .workflow/.loop/{loopId}.json: Status set to completed
- .workflow/.loop/{loopId}.progress/summary.md: Summary report generated
- {projectRoot}/.workflow/.loop/{loopId}.json: Status set to completed
- {projectRoot}/.workflow/.loop/{loopId}.progress/summary.md: Summary report generated
NEXT_ACTION_NEEDED: COMPLETED
```

View File

@@ -233,7 +233,7 @@ if (confirmedHypothesis) {
state.skill_state.last_action = 'DEBUG'
state.updated_at = timestamp
Write(`.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
Write(`${projectRoot}/.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
```
## Output Format
@@ -249,8 +249,8 @@ ACTION_RESULT:
}
FILES_UPDATED:
- .workflow/.loop/{loopId}.progress/debug.md: Understanding updated
- .workflow/.loop/{loopId}.progress/hypotheses.json: Hypotheses updated
- {projectRoot}/.workflow/.loop/{loopId}.progress/debug.md: Understanding updated
- {projectRoot}/.workflow/.loop/{loopId}.progress/hypotheses.json: Hypotheses updated
- [Source files]: Instrumentation added
NEXT_ACTION_NEEDED: {DEBUG | VALIDATE | DEVELOP | MENU}

View File

@@ -20,7 +20,7 @@ Execute development task and record progress to develop.md.
### Step 1: Verify Control Signals
```javascript
const state = JSON.parse(Read(`.workflow/.loop/${loopId}.json`))
const state = JSON.parse(Read(`${projectRoot}/.workflow/.loop/${loopId}.json`))
if (state.status !== 'running') {
return {
@@ -133,7 +133,7 @@ state.skill_state.last_action = 'DEVELOP'
state.skill_state.completed_actions.push('DEVELOP')
state.updated_at = timestamp
Write(`.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
Write(`${projectRoot}/.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
```
## Output Format
@@ -149,9 +149,9 @@ ACTION_RESULT:
}
FILES_UPDATED:
- .workflow/.loop/{loopId}.json: Task status updated
- .workflow/.loop/{loopId}.progress/develop.md: Progress entry added
- .workflow/.loop/{loopId}.progress/changes.log: Change entry added
- {projectRoot}/.workflow/.loop/{loopId}.json: Task status updated
- {projectRoot}/.workflow/.loop/{loopId}.progress/develop.md: Progress entry added
- {projectRoot}/.workflow/.loop/{loopId}.progress/changes.log: Change entry added
NEXT_ACTION_NEEDED: {DEVELOP | DEBUG | VALIDATE | MENU}
```

View File

@@ -19,7 +19,7 @@ Initialize CCW Loop session, create directory structure and initial state.
### Step 1: Verify Control Signals
```javascript
const state = JSON.parse(Read(`.workflow/.loop/${loopId}.json`))
const state = JSON.parse(Read(`${projectRoot}/.workflow/.loop/${loopId}.json`))
if (state.status !== 'running') {
return {
@@ -34,7 +34,7 @@ if (state.status !== 'running') {
### Step 2: Create Directory Structure
```javascript
const progressDir = `.workflow/.loop/${loopId}.progress`
const progressDir = `${projectRoot}/.workflow/.loop/${loopId}.progress`
// Directories created by orchestrator, verify they exist
// mkdir -p ${progressDir}
@@ -131,7 +131,7 @@ const skillState = {
state.skill_state = skillState
state.updated_at = getUtc8ISOString()
Write(`.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
Write(`${projectRoot}/.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
```
## Output Format
@@ -143,8 +143,8 @@ ACTION_RESULT:
- message: Session initialized with {N} development tasks
FILES_UPDATED:
- .workflow/.loop/{loopId}.json: skill_state initialized
- .workflow/.loop/{loopId}.progress/develop.md: Progress document created
- {projectRoot}/.workflow/.loop/{loopId}.json: skill_state initialized
- {projectRoot}/.workflow/.loop/{loopId}.progress/develop.md: Progress document created
NEXT_ACTION_NEEDED: {DEVELOP (auto) | MENU (interactive)}
```

View File

@@ -20,7 +20,7 @@ Display interactive action menu for user selection.
### Step 1: Verify Control Signals
```javascript
const state = JSON.parse(Read(`.workflow/.loop/${loopId}.json`))
const state = JSON.parse(Read(`${projectRoot}/.workflow/.loop/${loopId}.json`))
if (state.status !== 'running') {
return {
@@ -172,7 +172,7 @@ If user selects "exit":
// Save current state
state.status = 'user_exit'
state.updated_at = getUtc8ISOString()
Write(`.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
Write(`${projectRoot}/.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
return {
action: 'MENU',

View File

@@ -21,7 +21,7 @@ Run tests and verify implementation, record results to validate.md.
### Step 1: Verify Control Signals
```javascript
const state = JSON.parse(Read(`.workflow/.loop/${loopId}.json`))
const state = JSON.parse(Read(`${projectRoot}/.workflow/.loop/${loopId}.json`))
if (state.status !== 'running') {
return {
@@ -174,7 +174,7 @@ state.skill_state.validate.last_run_at = timestamp
state.skill_state.last_action = 'VALIDATE'
state.updated_at = timestamp
Write(`.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
Write(`${projectRoot}/.workflow/.loop/${loopId}.json`, JSON.stringify(state, null, 2))
```
## Output Format
@@ -191,9 +191,9 @@ ACTION_RESULT:
}
FILES_UPDATED:
- .workflow/.loop/{loopId}.progress/validate.md: Validation report created
- .workflow/.loop/{loopId}.progress/test-results.json: Test results saved
- .workflow/.loop/{loopId}.progress/coverage.json: Coverage data saved (if available)
- {projectRoot}/.workflow/.loop/{loopId}.progress/validate.md: Validation report created
- {projectRoot}/.workflow/.loop/{loopId}.progress/test-results.json: Test results saved
- {projectRoot}/.workflow/.loop/{loopId}.progress/coverage.json: Coverage data saved (if available)
NEXT_ACTION_NEEDED: {COMPLETE | DEBUG | DEVELOP | MENU}
```