@neikyun/ciel 6.3.0 → 6.4.1
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.
- package/assets/.claude/settings.json +1 -1
- package/assets/CLAUDE.md +5 -9
- package/assets/commands/ciel-audit.md +195 -59
- package/assets/commands/ciel-status.md +1 -1
- package/assets/commands/ciel-update.md +4 -0
- package/assets/dist/plugin/index.js +7 -9
- package/assets/platforms/opencode/.opencode/agents/ciel-critic.md +320 -483
- package/assets/platforms/opencode/.opencode/agents/ciel-explorer.md +113 -95
- package/assets/platforms/opencode/.opencode/agents/ciel-improver.md +204 -273
- package/assets/platforms/opencode/.opencode/agents/ciel-researcher.md +259 -270
- package/assets/platforms/opencode/.opencode/agents/ciel.md +1 -1
- package/assets/platforms/opencode/.opencode/commands/ciel-audit.md +300 -10
- package/assets/platforms/opencode/.opencode/commands/ciel-create-skill.md +75 -10
- package/assets/platforms/opencode/.opencode/commands/ciel-eval.md +71 -10
- package/assets/platforms/opencode/.opencode/commands/ciel-improve.md +7 -13
- package/assets/platforms/opencode/.opencode/commands/ciel-init.md +165 -11
- package/assets/platforms/opencode/.opencode/commands/ciel-migrate.md +5 -0
- package/assets/platforms/opencode/.opencode/commands/ciel-refresh.md +89 -13
- package/assets/platforms/opencode/.opencode/commands/ciel-status.md +6 -1
- package/assets/platforms/opencode/.opencode/commands/ciel-update.md +31 -18
- package/assets/platforms/opencode/.opencode/commands/ciel.md +1 -2
- package/assets/platforms/opencode/.opencode/plugins/ciel.ts +146 -0
- package/assets/platforms/opencode/AGENTS.md +3 -3
- package/assets/skills/ciel/SKILL.md +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +7 -9
- package/dist/plugin/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"hooks": [
|
|
11
11
|
{
|
|
12
12
|
"type": "command",
|
|
13
|
-
"command": "echo \"[CIEL v6] Session started — Pipeline: DOCS → QUOI → ASK → AVEC QUOI → DIVERGE → RECHERCHE → CODEBASE → EVALUER → ASK2 → FAIRE → RELIRE → PROUVER → MEMOIRE → META\""
|
|
13
|
+
"command": "echo \"[CIEL v6] Session started — Pipeline: DOCS → QUOI → ASK → AVEC QUOI → DIVERGE → RECHERCHE → CODEBASE → EVALUER → ASK2 → FAIRE → RELIRE → PROUVER → MEMOIRE → META\" && \"$CLAUDE_PROJECT_DIR\"/hooks/session-version-check.sh"
|
|
14
14
|
}
|
|
15
15
|
]
|
|
16
16
|
}
|
package/assets/CLAUDE.md
CHANGED
|
@@ -6,15 +6,11 @@ This file is Claude Code's project-level instruction. **It is not advisory — t
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Pipeline tracking (internal)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
[CIEL] Depth
|
|
13
|
-
|
|
14
|
-
[your response content]
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Classify depth in the FIRST line of EVERY response. No exceptions.
|
|
11
|
+
Classify depth and track pipeline step internally. Follow the 16-step pipeline for your
|
|
12
|
+
classified depth. Do NOT output `[CIEL] Depth:` or `Pipeline step:` — keep
|
|
13
|
+
pipeline state in your reasoning. Output only what the user needs to see.
|
|
18
14
|
|
|
19
15
|
---
|
|
20
16
|
|
|
@@ -31,7 +27,7 @@ Classify depth in the FIRST line of EVERY response. No exceptions.
|
|
|
31
27
|
|
|
32
28
|
## Rules (immutable — do NOT skip)
|
|
33
29
|
|
|
34
|
-
1. **
|
|
30
|
+
1. **Pipeline interne** — classify depth and track step internally. Concise output.
|
|
35
31
|
2. **Pipeline** — follow the 16-step table below. Complete ALL steps for your depth. No shortcuts.
|
|
36
32
|
3. **TODO list** — use `TaskCreate` at the start of each task (one task per pipeline step). Mark each step `in_progress` before starting it, `completed` when done.
|
|
37
33
|
4. **ASK** — use AskUserQuestion tool ONLY if ambiguous. If context is sufficient, DECIDE and move on.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Audits the current Claude Code session for Ciel paradigm violations (missed Task dispatches, inline gathering, hook inactivity, skill overlaps, intent routing misses). Produces a
|
|
2
|
+
description: Audits the current Claude Code session for Ciel paradigm violations (missed Task dispatches, inline gathering, hook inactivity, skill overlaps, intent routing misses). Produces a structured report with a Ciel Health Score (0-100). If score < 75, creates a GitHub Issue on the Ciel repository with the findings and session timeline. Hook-independent — works even when Ciel hooks are broken.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /ciel-audit — Session post-mortem
|
|
6
6
|
|
|
7
|
-
*Generates a structured report of Ciel behavior violations observed in the current session.
|
|
7
|
+
*Generates a structured report of Ciel behavior violations observed in the current session. Calculates a Ciel Health Score (0-100). If the score is below 75, creates a GitHub Issue on the Ciel repository (github.com/KaosKyun/Ciel) with the full timeline and findings — otherwise produces the report only without creating an issue.*
|
|
8
8
|
|
|
9
9
|
Usage: `/ciel-audit`
|
|
10
10
|
|
|
@@ -14,22 +14,23 @@ Runs inline in the main session. Does not dispatch agents. Does not depend on ho
|
|
|
14
14
|
|
|
15
15
|
## Instructions to the model
|
|
16
16
|
|
|
17
|
-
You are auditing the **current conversation session** — the one you are participating in right now.
|
|
18
|
-
|
|
19
|
-
Jump directly to the report. No preamble. No meta-commentary. No "I will now audit…".
|
|
17
|
+
You are auditing the **current conversation session** — the one you are participating in right now. Jump directly to the analysis. No preamble. No meta-commentary. No "I will now audit…".
|
|
20
18
|
|
|
21
19
|
### What to audit
|
|
22
20
|
|
|
23
|
-
Scan the session's tool-use history (your own prior turns). For each `/ciel <task>` invocation in this session, check the
|
|
21
|
+
Scan the session's tool-use history (your own prior turns). For each `/ciel <task>` invocation in this session, check the **eight dimensions** below. For each dimension, assign a severity and penalty score to calculate the final Ciel Health Score.
|
|
24
22
|
|
|
25
|
-
#### 1
|
|
23
|
+
#### Dimension 1: Dispatch discipline (critical) — penalty up to -25
|
|
26
24
|
|
|
27
25
|
- Did the assistant emit a `Task(subagent_type="ciel-*")` within the **first 3 tool calls** after the `/ciel` prompt?
|
|
28
26
|
- If NO: count the inline `Bash` / `Read` / `Grep` / `Glob` / `WebSearch` / `WebFetch` calls emitted in the main session before any dispatch. This is the v2.1.5 anti-pattern documented in `skills/ciel/SKILL.md:146-156`.
|
|
29
27
|
- Exception: Trivial tasks (rename, typo, 1-line fix, docs-only) are allowed to run inline.
|
|
30
|
-
-
|
|
28
|
+
- Severity→score:
|
|
29
|
+
- Critical dispatch violation (Standard/Critical task with no Task()): **-25**
|
|
30
|
+
- High (delayed dispatch, >1 inline tool before dispatch): **-15**
|
|
31
|
+
- OK (Task() within first 3 tool calls): **0**
|
|
31
32
|
|
|
32
|
-
#### 2
|
|
33
|
+
#### Dimension 2: Hook activity (critical) — penalty up to -25
|
|
33
34
|
|
|
34
35
|
Search the session transcript for strings that Ciel hooks would have injected:
|
|
35
36
|
|
|
@@ -38,99 +39,151 @@ Search the session transcript for strings that Ciel hooks would have injected:
|
|
|
38
39
|
- Session banner from `hooks/session-start.sh` (SessionStart context).
|
|
39
40
|
- `"META-CRITIQUER"` or similar end-of-session signal from `hooks/stop.sh`.
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
- None found despite writes/edits: **-25** → hooks broken
|
|
43
|
+
- Partial (some hooks firing but not all): **-10**
|
|
44
|
+
- All present: **0**
|
|
42
45
|
|
|
43
|
-
Most likely root cause: relative paths in `Ciel/settings.json:8,19,31,42,54,65,76`. The `command` field is written as `bash .claude/plugins/ciel/hooks/<file>.sh`, which Claude Code resolves against the current working directory, not the plugin directory.
|
|
46
|
+
Most likely root cause: relative paths in `Ciel/settings.json:8,19,31,42,54,65,76`. The `command` field is written as `bash .claude/plugins/ciel/hooks/<file>.sh`, which Claude Code resolves against the current working directory, not the plugin directory.
|
|
44
47
|
|
|
45
|
-
#### 3
|
|
48
|
+
#### Dimension 3: Skill invocation coverage vs depth — penalty up to -15
|
|
46
49
|
|
|
47
50
|
Cross-reference `skills/ciel/SKILL.md:20-64` (Depth Gauge) with what actually happened:
|
|
48
51
|
|
|
49
|
-
- **Standard** task
|
|
50
|
-
- **Critical** task
|
|
51
|
-
-
|
|
52
|
+
- **Standard** task → `researcher` and `explorer` agents must be dispatched in parallel before FAIRE. Missing both: **-15**. Missing one: **-8**.
|
|
53
|
+
- **Critical** task → must additionally invoke `stride-analyzer` and `security-regression-check`. Missing: **-15**.
|
|
54
|
+
- Depth ambiguous and `depth-classifier` not invoked: **-5**.
|
|
52
55
|
|
|
53
|
-
#### 4
|
|
56
|
+
#### Dimension 4: Skill overlap / redundancy — penalty up to -10
|
|
54
57
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
+
- Both `relire-critic` AND `critiquer-auditor` on the same diff: **-10**
|
|
59
|
+
- `meta-critiquer` did not fire at end-of-task: **-5**
|
|
60
|
+
- Same skill invoked 3+ times for same scope: **-5**
|
|
58
61
|
|
|
59
|
-
#### 5
|
|
62
|
+
#### Dimension 5: Agent report quality — penalty up to -5
|
|
60
63
|
|
|
61
|
-
- Any `Task(subagent_type="ciel-*")`
|
|
64
|
+
- Any `Task(subagent_type="ciel-*")` with returned message under 200 tokens: **-5** per occurrence (max -10)
|
|
62
65
|
|
|
63
|
-
#### 6
|
|
66
|
+
#### Dimension 6: Intent routing hits / misses — penalty up to -10
|
|
64
67
|
|
|
65
|
-
Scan the user's `/ciel` prompt text against the intent signals in `SKILL.md:79-94`. For each matched intent, verify the corresponding skill was invoked.
|
|
68
|
+
Scan the user's `/ciel` prompt text against the intent signals in `SKILL.md:79-94`. For each matched intent, verify the corresponding skill was invoked. Each miss: **-5** (max -10).
|
|
66
69
|
|
|
67
|
-
|
|
68
|
-
- "debug", "why did X fail", "production bug", "incident", "RCA" → `debug-reasoning-rca`
|
|
69
|
-
- "use library X", "call API Z" → `doc-validator-official` BEFORE writing code
|
|
70
|
-
- "review this UI", "visual regression" → `playwright-visual-critic`
|
|
71
|
-
- "accessibility", "a11y", "WCAG" → `accessibility-wcag-auditor`
|
|
72
|
-
- Changes to `.github/workflows/` → `cicd-security-hardener`
|
|
70
|
+
#### Dimension 7: npm version staleness — penalty up to -10
|
|
73
71
|
|
|
74
|
-
|
|
72
|
+
Check if a newer version of Ciel is available on npm:
|
|
75
73
|
|
|
74
|
+
```bash
|
|
75
|
+
NPM_VERSION=$(npm view @neikyun/ciel version 2>/dev/null || echo "unknown")
|
|
76
|
+
LOCAL_VERSION=$(cat /path/to/VERSION 2>/dev/null || cat package.json 2>/dev/null | grep '"version"' | head -1 | cut -d'"' -f4 || echo "unknown")
|
|
76
77
|
```
|
|
77
|
-
|
|
78
|
+
|
|
79
|
+
- npm version > local version: **-10**
|
|
80
|
+
- Version check failed (npm not installed, no network): **0** (not a violation, just incomplete data)
|
|
81
|
+
- Versions match or local is newer: **0**
|
|
82
|
+
|
|
83
|
+
If npm version > local version, include an **Update notification** in the report:
|
|
84
|
+
> A newer version of Ciel is available on npm: **{npm_version}** (installed: **{local_version}**). Run `ciel-update` or `npm update -g @neikyun/ciel` to upgrade.
|
|
85
|
+
|
|
86
|
+
#### Dimension 8: Platform health — penalty up to -5
|
|
87
|
+
|
|
88
|
+
Check which Ciel platforms are present and whether they have valid configurations:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
ls /path/to/platforms/ 2>/dev/null
|
|
78
92
|
```
|
|
79
93
|
|
|
94
|
+
Expected platforms: codex, cursor, kilocode, lmstudio, ollama, opencode, windsurf
|
|
95
|
+
|
|
96
|
+
- All platforms present: **0**
|
|
97
|
+
- Missing 1-2 platforms: **-3**
|
|
98
|
+
- Missing 3+ platforms: **-5**
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Scoring
|
|
103
|
+
|
|
104
|
+
**Ciel Health Score** = 100 - sum(penalties)
|
|
105
|
+
|
|
106
|
+
| Score range | Status | Issue created? |
|
|
107
|
+
|-------------|--------|----------------|
|
|
108
|
+
| 90-100 | Excellent | No |
|
|
109
|
+
| 75-89 | Good (minor issues) | No |
|
|
110
|
+
| 50-74 | Needs improvement | **Yes** — creates issue with timeline |
|
|
111
|
+
| 0-49 | Critical | **Yes** — creates issue with timeline |
|
|
112
|
+
|
|
113
|
+
The score is calculated automatically from the detected violations.
|
|
114
|
+
|
|
80
115
|
---
|
|
81
116
|
|
|
82
|
-
### Report format
|
|
117
|
+
### Report format
|
|
83
118
|
|
|
84
|
-
Begin the output with the literal line `# Ciel Session Audit Report`. End with the literal line `**End of audit report.**` on its own line.
|
|
119
|
+
Begin the output with the literal line `# Ciel Session Audit Report`. End with the literal line `**End of audit report.**` on its own line.
|
|
85
120
|
|
|
86
121
|
```markdown
|
|
87
122
|
# Ciel Session Audit Report
|
|
88
123
|
|
|
89
124
|
**Date**: <today's date>
|
|
125
|
+
**Ciel Health Score**: <N>/100 — <Excellent|Good|Needs improvement|Critical>
|
|
126
|
+
**npm**: local v<X.Y.Z> | npm v<X.Y.Z> | <up-to-date|update available>
|
|
127
|
+
**Platforms**: codex ✓ cursor ✓ kilo ✓ lmstudio ✓ ollama ✓ opencode ✓ windsurf ✓ (or ✗ if missing)
|
|
90
128
|
**Session summary**: <N> /ciel invocation(s), <N> total tool calls, <N> Task() dispatches, <N> inline Bash/Read/Grep/WebSearch calls in main session.
|
|
91
129
|
|
|
92
|
-
**Verdict**: <PASS | VIOLATIONS FOUND
|
|
130
|
+
**Verdict**: <PASS | VIOLATIONS FOUND>
|
|
93
131
|
|
|
94
132
|
---
|
|
95
133
|
|
|
96
134
|
## Violations detected
|
|
97
135
|
|
|
98
|
-
###
|
|
136
|
+
### <N>. <Short violation name> — penalty: -<N>
|
|
99
137
|
|
|
138
|
+
**Severity**: <critical | high | medium | low>
|
|
100
139
|
**Evidence from session**
|
|
101
140
|
- User prompt (turn N): `<exact prompt text, truncated to 200 chars>`
|
|
102
141
|
- Assistant's first 3 tool calls after this prompt:
|
|
103
142
|
1. `<tool_name>(<brief args>)`
|
|
104
143
|
2. `<tool_name>(<brief args>)`
|
|
105
144
|
3. `<tool_name>(<brief args>)`
|
|
106
|
-
- Expected
|
|
107
|
-
- Observed:
|
|
145
|
+
- Expected: `Task(subagent_type="ciel-<role>", ...)` as first tool call
|
|
146
|
+
- Observed: `<actual behavior>`
|
|
108
147
|
|
|
109
148
|
**Root cause hypothesis**
|
|
110
|
-
<one or two sentences
|
|
111
|
-
|
|
112
|
-
**Incriminated Ciel files**
|
|
113
|
-
- `Ciel/skills/ciel/SKILL.md:<start-end>` — <reason>
|
|
114
|
-
- `Ciel/commands/ciel.md:<line>` — <reason>
|
|
115
|
-
- `Ciel/settings.json:<line>` — <reason>
|
|
149
|
+
<one or two sentences>
|
|
116
150
|
|
|
117
151
|
**Proposed fix**
|
|
118
|
-
- <
|
|
119
|
-
|
|
120
|
-
|
|
152
|
+
- <concrete edit with file:line>
|
|
153
|
+
|
|
154
|
+
...
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Update notification
|
|
159
|
+
|
|
160
|
+
<If npm version > local version, show update notification here. Otherwise omit this section.>
|
|
161
|
+
|
|
162
|
+
---
|
|
121
163
|
|
|
122
|
-
|
|
123
|
-
|
|
164
|
+
## Scoring breakdown
|
|
165
|
+
|
|
166
|
+
| Dimension | Penalty |
|
|
167
|
+
|-----------|---------|
|
|
168
|
+
| D1 — Dispatch discipline | -<N> |
|
|
169
|
+
| D2 — Hook activity | -<N> |
|
|
170
|
+
| D3 — Skill coverage vs depth | -<N> |
|
|
171
|
+
| D4 — Skill overlap | -<N> |
|
|
172
|
+
| D5 — Agent report quality | -<N> |
|
|
173
|
+
| D6 — Intent routing | -<N> |
|
|
174
|
+
| D7 — npm version | -<N> |
|
|
175
|
+
| D8 — Platform health | -<N> |
|
|
176
|
+
| **Total** | **-<N>** |
|
|
177
|
+
| **Health Score** | **<N>/100** |
|
|
124
178
|
|
|
125
179
|
---
|
|
126
180
|
|
|
127
181
|
## Summary of fixes to apply
|
|
128
182
|
|
|
129
|
-
Apply these in order. Each points to a file:line and a concrete change.
|
|
183
|
+
Apply these in order. Each points to a file:line and a concrete change.
|
|
130
184
|
|
|
131
|
-
1. **<Fix name>** —
|
|
132
|
-
2.
|
|
133
|
-
3. …
|
|
185
|
+
1. **<Fix name>** — `<path>:<line>` — <one-line description>
|
|
186
|
+
2. ...
|
|
134
187
|
|
|
135
188
|
After each fix: re-run the scenario that triggered the violation in a fresh Claude session to verify.
|
|
136
189
|
|
|
@@ -139,30 +192,113 @@ After each fix: re-run the scenario that triggered the violation in a fresh Clau
|
|
|
139
192
|
**End of audit report.**
|
|
140
193
|
```
|
|
141
194
|
|
|
142
|
-
### If no violations are found
|
|
195
|
+
### If no violations are found (score = 100)
|
|
143
196
|
|
|
144
|
-
Output a single short section:
|
|
197
|
+
Output a single short section — **no issue is created** for PASS verdicts:
|
|
145
198
|
|
|
146
199
|
```markdown
|
|
147
200
|
# Ciel Session Audit Report
|
|
148
201
|
|
|
202
|
+
**Date**: <today's date>
|
|
203
|
+
**Ciel Health Score**: 100/100 — Excellent
|
|
204
|
+
**npm**: local v<X.Y.Z> | npm v<X.Y.Z> | up-to-date
|
|
205
|
+
**Platforms**: all 7 platforms present ✓
|
|
206
|
+
**Session summary**: <N> /ciel invocation(s), <N> tool calls, <N> Task() dispatches.
|
|
149
207
|
**Verdict**: PASS
|
|
150
208
|
|
|
151
|
-
|
|
209
|
+
**No violations found.** No issue created.
|
|
152
210
|
|
|
153
211
|
**End of audit report.**
|
|
154
212
|
```
|
|
155
213
|
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
### GitHub Issue creation (only if score < 75)
|
|
217
|
+
|
|
218
|
+
If the Ciel Health Score is **below 75**, create a GitHub Issue with the report AND the session timeline.
|
|
219
|
+
|
|
220
|
+
**Important**: Do NOT create an issue if score >= 75. Only create for scores < 75.
|
|
221
|
+
|
|
222
|
+
1. **Check for duplicate issues first**:
|
|
223
|
+
```bash
|
|
224
|
+
EXISTING=$(gh issue list --repo KaosKyun/Ciel --label audit --state open \
|
|
225
|
+
--json title --jq '.[].title' 2>/dev/null | \
|
|
226
|
+
grep -c "^\[CIEL-AUDIT\] $(date +%Y-%m-%d) -" || true)
|
|
227
|
+
if [ "$EXISTING" -gt 0 ]; then
|
|
228
|
+
echo "Warning: today's audit issue already exists. Skipping creation."
|
|
229
|
+
echo "View existing at: https://github.com/KaosKyun/Ciel/issues?q=is%3Aopen+label%3Aaudit"
|
|
230
|
+
exit 0
|
|
231
|
+
fi
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
2. **Save the report to a temp file**: Write the complete report text to a temp file:
|
|
235
|
+
```bash
|
|
236
|
+
REPORT_FILE="/tmp/ciel-audit-report-$(date +%Y%m%d).md"
|
|
237
|
+
cat > "$REPORT_FILE" << 'REPORT_EOF'
|
|
238
|
+
# Ciel Session Audit Report
|
|
239
|
+
...
|
|
240
|
+
**End of audit report.**
|
|
241
|
+
REPORT_EOF
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
3. **Determine the repository**: run `gh repo view --json owner,name` to confirm, or default to `KaosKyun/Ciel`.
|
|
245
|
+
|
|
246
|
+
4. **Create the issue** with `gh issue create`, using Python to avoid shell quoting issues:
|
|
247
|
+
```bash
|
|
248
|
+
python3 -c "
|
|
249
|
+
import subprocess, sys
|
|
250
|
+
ymd, date_str, score, verdict = sys.argv[1:5]
|
|
251
|
+
report_path = f'/tmp/ciel-audit-report-{ymd}.md'
|
|
252
|
+
with open(report_path) as f:
|
|
253
|
+
body = f.read()
|
|
254
|
+
subprocess.run(['gh', 'issue', 'create',
|
|
255
|
+
'--repo', 'KaosKyun/Ciel',
|
|
256
|
+
'--title', f'[CIEL-AUDIT] {date_str} - {verdict} (Score: {score}/100)',
|
|
257
|
+
'--label', 'audit,ciel',
|
|
258
|
+
'--body', body])
|
|
259
|
+
" "$(date +%Y%m%d)" "$(date +%Y-%m-%d)" "<score>" "<verdict>"
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
5. **Include the session timeline** in the issue body. Before the report, add a timeline section listing all `/ciel` invocations in chronological order:
|
|
263
|
+
```markdown
|
|
264
|
+
## Session Timeline
|
|
265
|
+
|
|
266
|
+
| Time | Event |
|
|
267
|
+
|------|-------|
|
|
268
|
+
| T+N | /ciel <prompt excerpt> |
|
|
269
|
+
| T+N | Write/Edit on <file> |
|
|
270
|
+
| T+N | Task() dispatch to <agent> |
|
|
271
|
+
...
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
<full audit report>
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
6. **Handle errors gracefully**:
|
|
279
|
+
- If `gh` is not available: print a message telling the user to install (`brew install gh`) and print the report to stdout instead.
|
|
280
|
+
- If the repository can't be reached: skip issue creation, print a warning, but still output the report.
|
|
281
|
+
|
|
282
|
+
7. **After creating the issue**: include the issue URL at the end of your response so the user can open it directly.
|
|
283
|
+
|
|
284
|
+
**Title format**: `[CIEL-AUDIT] YYYY-MM-DD - VIOLATIONS FOUND (Score: <N>/100)`
|
|
285
|
+
|
|
286
|
+
**Labels**: `audit`, `ciel`
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
156
290
|
### Tone and length
|
|
157
291
|
|
|
158
292
|
- **Mechanically actionable, not narrative**. File paths, line numbers, before/after snippets.
|
|
159
|
-
- Target length: 400–800 lines of markdown for a session with 2–3 violations. Shorter if PASS.
|
|
293
|
+
- Target length: 400–800 lines of markdown for a session with 2–3 violations. Shorter if PASS.
|
|
160
294
|
- No rhetorical preamble. No meta-commentary about the audit process itself. No emoji. No closing remarks after the `**End of audit report.**` marker.
|
|
161
295
|
|
|
162
296
|
### What NOT to do
|
|
163
297
|
|
|
164
|
-
- Do NOT
|
|
298
|
+
- Do NOT fix violations in the current session. Only produce the report and optionally create the issue.
|
|
165
299
|
- Do NOT invoke other Ciel skills. This command is fully self-contained.
|
|
166
|
-
- Do NOT dispatch `Task()` agents. Audit happens inline
|
|
300
|
+
- Do NOT dispatch `Task()` agents. Audit happens inline.
|
|
167
301
|
- Do NOT ask clarifying questions. Produce the report with the information you have.
|
|
168
|
-
- Do NOT
|
|
302
|
+
- Do NOT create an issue if score >= 75. Only create for score < 75.
|
|
303
|
+
- Do NOT create duplicate issues — run the `gh issue list` check before creating.
|
|
304
|
+
- Do NOT restart, rerun, or attempt to fix the session in-flight. The audit report is the deliverable.
|
|
@@ -17,6 +17,10 @@ Checks GitHub for a newer release and re-installs if available.
|
|
|
17
17
|
- Preserves: `ciel-overlay.md`, `.ciel/`, existing configs
|
|
18
18
|
- Non-destructive merge on `opencode.json`
|
|
19
19
|
|
|
20
|
+
3. **npm update**: `npm update -g @neikyun/ciel`
|
|
21
|
+
- Updates the Ciel CLI tool from npm
|
|
22
|
+
- Skip if npm is not available or the package isn't installed globally
|
|
23
|
+
|
|
20
24
|
## Flags
|
|
21
25
|
|
|
22
26
|
| Flag | Purpose |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Ciel -- OpenCode plugin (v6
|
|
2
|
+
// Ciel -- OpenCode plugin (v6)
|
|
3
3
|
// Full 16-step pipeline: DOCS -> QUOI -> ASK -> AVEC QUOI -> DIVERGE
|
|
4
4
|
// -> RECHERCHE -> SECURITE -> CODEBASE -> EVALUER -> ASK2
|
|
5
5
|
// -> FAIRE -> ADR -> RELIRE -> PROUVER -> MEMOIRE -> META
|
|
@@ -31,15 +31,13 @@ const EXPLORATION_FLAG = (0, path_1.join)(CIEL_DIR, "exploration.active");
|
|
|
31
31
|
const MEMORY_FILE = (0, path_1.join)(CIEL_DIR, "memory.json");
|
|
32
32
|
// ----- V5 WORKFLOW INJECTION -----
|
|
33
33
|
const CIEL_WORKFLOW_INSTRUCTION = `
|
|
34
|
-
|
|
34
|
+
Classify depth internally (Trivial / Standard / Critical / Spike). Follow the matching pipeline.
|
|
35
|
+
Do NOT output depth classification in the visible response — track it in your reasoning.
|
|
36
|
+
Keep responses concise: only what the user needs to see.
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|-------|----------|
|
|
40
|
-
| Standard/Critical | DOCS -> QUOI -> ASK -> AVEC QUOI -> DIVERGE -> RECHERCHE -> SECURITE -> CODEBASE -> EVALUER -> ASK2 -> FAIRE -> ADR -> RELIRE -> PROUVER -> MEMOIRE -> META |
|
|
41
|
-
| Trivial | QUOI -> FAIRE -> META |
|
|
42
|
-
| Spike | QUOI -> ASK -> AVEC QUOI -> DIVERGE -> FAIRE (relaxed) -> META |
|
|
38
|
+
Standard/Critical: DOCS -> QUOI -> ASK -> AVEC QUOI -> DIVERGE -> RECHERCHE -> SECURITE -> CODEBASE -> EVALUER -> ASK2 -> FAIRE -> ADR -> RELIRE -> PROUVER -> MEMOIRE -> META
|
|
39
|
+
Trivial: QUOI -> FAIRE -> META
|
|
40
|
+
Spike: QUOI -> ASK -> AVEC QUOI -> DIVERGE -> FAIRE (relaxed) -> META
|
|
43
41
|
|
|
44
42
|
USE the question tool for ASK/ASK2. NEVER skip steps. NEVER code on assumptions.
|
|
45
43
|
`;
|