Skip to content

Commit 33ee80a

Browse files
committed
feat(v1.8.5 Stage 8 DONE): changelog-spec v1 三语 + violations.md F-code mapping + SKILL.md 3 new HARD RULES
Files (5): - references/changelog-spec.md v1 (EN, ZH, JA) — CHANGELOG entry schema for v1.8.5+ (7 required YAML fields: version/date/type/breaking_changes/alternatives_considered/ordering_dependency/regression_cases_added) - pro/compliance/violations.md +F-code mapping reference table + v1.8.5+ format spec (7 cols incl. F-Code) - SKILL.md +3 new HARD RULES (No .py/.sh in repo, violations.md F-Code required v1.8.5+, CHANGELOG schema v1 required v1.8.5+) + references section updated with 6 new v1.8.5 specs Stage 8 borrowed from eou-foundry: - CHANGELOG YAML frontmatter pattern: self-evolution/ecp/*.yml schema (12+ fields → simplified to 7 for life_OS) - alternatives_considered + ordering_dependency: ECP-0011 + ECP-0015-0017 cohort precedent - F-code mapping: engine/failure-taxonomy.yml F1-F17 mapped to existing A-F process taxonomy Stage 8 trade-offs: - HARD RULE tabularization of all old rules: DEFERRED (would be its own Stage) - v1.8.5 release entry in CHANGELOG.md: DEFERRED to Stage 10 大同步 - Retroactive F-code labeling of 77 historical violation rows: OPTIONAL (lazy during AUDITOR reviews) Stage 8 DONE. Next: Stage 9 (28 regression fixtures — partly done already, fill remaining).
1 parent 134f607 commit 33ee80a

5 files changed

Lines changed: 453 additions & 0 deletions

File tree

SKILL.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,10 +347,42 @@ Platform auto-detects → reads `pro/CLAUDE.md` (Claude) / `pro/GEMINI.md` (Gemi
347347

348348
**Update**: Say "update" (or theme equivalent) when prompted, or at any time to check and apply updates.
349349

350+
## v1.8.5 NEW HARD RULES (per RFC `_meta/rfc/v1.8.5-cleanup-and-hardening.md`)
351+
352+
### HARD RULE · No .py / .sh files in lifeos repo (Stage 2)
353+
354+
After v1.8.5 hook-layer retirement, the repo MUST contain ZERO `.py` and `.sh` files (excluding `backup/`, `.git/`, `.venv/`). All executable logic moves to `.claude/commands/*.md` slash commands invoked via Claude CLI / Codex CLI / Gemini CLI.
355+
356+
**Verification**: `find . -type f \( -name '*.py' -o -name '*.sh' \) -not -path './backup/*' -not -path './.git/*' -not -path './.venv/*'` MUST return empty. `/verify-release` check #8 enforces.
357+
358+
**Violation**: F4 SCOPE_FAILURE (re-introducing executable scripting after v1.8.5 retirement).
359+
360+
### HARD RULE · violations.md F-Code required for v1.8.5+ entries (Stage 8)
361+
362+
Every new row in `pro/compliance/violations.md` from v1.8.5 onwards MUST include the `F-Code` column (one of F1-F17 from `references/failure-taxonomy.md`). The legacy A-F process taxonomy (A1/A2/A3/B/C/D/E/F) and the new F1-F17 architecture taxonomy are complementary — both apply per violation.
363+
364+
**Format**: `| Timestamp | Trigger | Type (A-F) | F-Code | Severity | Details | Resolved |`
365+
366+
**Mapping reference**: see `pro/compliance/violations.md` §"A-F → F-Code Typical Mappings".
367+
368+
**Violation**: F3 SCHEMA_FAILURE (violation row missing required F-Code column).
369+
370+
### HARD RULE · CHANGELOG schema v1 for v1.8.5+ release entries (Stage 8)
371+
372+
Every release entry from v1.8.5 onwards MUST conform to `references/changelog-spec.md` v1 schema:
373+
- 7 required YAML frontmatter fields (version / date / type / breaking_changes / alternatives_considered / ordering_dependency / regression_cases_added)
374+
- `alternatives_considered` MUST contain ≥1 substantive `option` + `rejected_because` pair
375+
- Three-language sync (EN + zh + ja) per HARD RULE `三语文档同步`
376+
377+
**Validation**: AUDITOR Mode 7 (planned). Manual check: every v1.8.5+ release has YAML frontmatter with all 7 fields.
378+
379+
**Violation**: F3 SCHEMA_FAILURE (CHANGELOG entry without v1.8.5+ schema).
380+
350381
## References
351382

352383
- Orchestration: `pro/CLAUDE.md` · Agent definitions: `pro/agents/*.md` · Global rules: `pro/GLOBAL.md`
353384
- Themes: `themes/*.md` · Domain details: `references/domains.md` · Scenario configs: `references/scene-configs.md`
354385
- Data architecture: `references/data-layer.md` · Data model: `references/data-model.md`
355386
- Strategic Map: `references/strategic-map-spec.md`
356387
- Wiki: `references/wiki-spec.md` · SOUL: `references/soul-spec.md` · DREAM: `references/dream-spec.md`
388+
- **v1.8.5 new**: `references/failure-taxonomy.md` (F1-F17) · `references/refactoring-patterns.md` (8+2) · `references/risk-domains.md` (R1-R8) · `references/lifecycle-gates.md` (8 transitions) · `references/agent-spec.md` (v2) · `references/changelog-spec.md` (v1)
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
spec_id: changelog.v1
3+
description: CHANGELOG.md entry schema v1(v1.8.5+ 有効)。eou-foundry ECP YAML frontmatter パターンを借用 —— 各 release entry が構造化された YAML frontmatter(version、breaking_changes、alternatives_considered、ordering_dependency、regression_cases_added)+ markdown 本文を持つ。v1.8.5 前のエントリは叙述的のまま(legacy)。
4+
status: active
5+
authoritative: true
6+
source_attribution: xiaolai/eou-foundry @ e4b12ce, self-evolution/ecp/ YAML schema
7+
introduced_in: v1.8.5
8+
---
9+
10+
# CHANGELOG 仕様書 v1
11+
12+
CHANGELOG.md エントリは v1.8.5 以降、構造化された YAML frontmatter + markdown 本文を持つ。v1.8.5 前のエントリは叙述的のまま変更なし(legacy)。
13+
14+
## なぜ構造化 frontmatter
15+
16+
v1.8.4 CHANGELOG エントリは叙述的 —— 人間には有用だが機械パース不可能。eou-foundry が浮き彫りにした 3 つの問題:
17+
18+
1. **alternatives_considered なし**: エントリは何をしたかを記録するが、何を考慮して拒否したかを記録しない。「なぜ X をしなかったか」は歴史から失われる。
19+
2. **ordering_dependency なし**: コホート release(例 ECPs 0015-0017 が一緒に land しなければならない)に明示的宣言がない。cherry-pick が問題を引き起こした。
20+
3. **regression_cases_added なし**: 「これを修正した」から「再発防止のために回帰テストを追加した」へのリンクが暗黙的でしばしば欠落。
21+
22+
v1.8.5+ schema がこれらを修正。
23+
24+
## v1.8.5+ Entry Schema
25+
26+
```markdown
27+
---
28+
version: 1.8.5
29+
date: 2026-07-15
30+
type: major | minor | patch
31+
breaking_changes: # 箇条書きリスト
32+
- "SOUL.md schema v1 → v2(X-over-Y formulation 必須)"
33+
- "wiki entry schema v1 → v2(active+ エントリで outlier slot 必須)"
34+
- "21 agent frontmatter v1 → v2(authority_level / blast_radius 必須)"
35+
new_features:
36+
- "F1-F17 失敗分類法(references/failure-taxonomy.md)"
37+
fixes: []
38+
39+
# v1.8.5+ 必須: 少なくとも 1 つの拒否されたオプションと理由
40+
alternatives_considered:
41+
- option: "v1.8 のまま、6 ヶ月で 30 個の minor patch として ship"
42+
rejected_because: "30 個の独立した release = 30 個の移行パス;ユーザーは 1 回のアップグレードを希望"
43+
- option: "叙述的 CHANGELOG を保持(YAML frontmatter なし)"
44+
rejected_because: "grep 可能性とコホート依存追跡を失う"
45+
46+
# v1.8.5+ 必須: クロス release 依存宣言
47+
ordering_dependency:
48+
blocked_by: [] # 先に land しなければならない SHA / version ref
49+
must_coexist_with: # 一緒に ship しなければならない他の commits/refs
50+
- Stage 0(failure-taxonomy + refactoring-patterns)
51+
- Stage 1(SOUL v2)
52+
- Stage 2(wiki v2)
53+
54+
# v1.8.5+ 必須: この release で追加された回帰ケース
55+
regression_cases_added:
56+
- rc-soul-no-priority
57+
- rc-soul-no-outlier
58+
- rc-soul-strawman-y
59+
- rc-wiki-no-outlier
60+
- rc-wiki-no-hypothesis
61+
- rc-agent-no-authority
62+
- rc-agent-blast-radius-violation
63+
---
64+
65+
## v1.8.5 — Hook Retirement + EOU Hardening · 2026-07-15
66+
67+
> 1 段落の release 概要。
68+
69+
### ハイライト
70+
71+
- ユーザーが見える項目のリスト
72+
73+
### 移行
74+
75+
- ユーザーが前のバージョンからアップグレードする方法
76+
- 実行する slash command(例 `/migrate-soul-v2`
77+
- 後方互換性ノート(D3 12 ヶ月 legacy 共存)
78+
79+
### 謝辞 / 背景
80+
81+
- (オプションの叙述セクション)
82+
```
83+
84+
## v1.8.5+ 必須 YAML フィールド
85+
86+
v1.8.5 以降の各 release entry:
87+
88+
1. **version**: semver 文字列、例 `"1.8.5"`
89+
2. **date**: ISO YYYY-MM-DD
90+
3. **type**: `major | minor | patch | prerelease` のいずれか
91+
4. **breaking_changes**: 配列(非破壊的 release では空可;空でも必須フィールド)
92+
5. **alternatives_considered**: `option` + `rejected_because` を持つ ≥1 エントリ。「他に何も考慮しなかった」は有効値ではない。
93+
6. **ordering_dependency**: `blocked_by` 配列 + `must_coexist_with` 配列(独立 patch では空可)
94+
7. **regression_cases_added**: `rc-*` id 配列(回帰ケースなしで空可だがレビューすべき —— ほとんどの修正は回帰カバレッジに値する)
95+
96+
`new_features``fixes` は推奨だが必須ではない。
97+
98+
## 検証
99+
100+
AUDITOR Mode 7(Stage 10 で追加、v1.8.5 release で計画中)が検証:
101+
- v1.8.5+ の各 release entry が 7 つの必須フィールドすべてを持つ
102+
- `alternatives_considered` が ≥1 実質的エントリ(LLM 啟發式: rejected_because ≥20 文字 + 非自明)
103+
- `ordering_dependency.must_coexist_with` 参照が実際の commits/PRs/Stages に解決
104+
- `regression_cases_added` 参照が `evals/regression-fixtures/` に存在
105+
106+
## Legacy entries(v1.8.5 前)
107+
108+
v1.8.5 前の CHANGELOG エントリ(v1.0.0 から v1.8.4)は叙述的のまま。遡及的移行不要。Schema は v1.8.5 entry から適用。
109+
110+
## 三言語同期
111+
112+
HARD RULE `三言語ドキュメント同期` に従い、YAML frontmatter schema はすべての 3 CHANGELOG ファイルに適用:
113+
- `CHANGELOG.md`(EN)
114+
- `i18n/zh/CHANGELOG.md`(ZH)
115+
- `i18n/ja/CHANGELOG.md`(JA)
116+
117+
3 つすべてが同じ v1.8.5+ entry を同じ YAML frontmatter で持つ必要がある(翻訳された本文だが同じ構造化フィールド)。
118+
119+
## ソース出典
120+
121+
eou-foundry @ e4b12ce — `self-evolution/ecp/*.yml` YAML schema(各 ECP は id / target_eou / target_version_from / target_version_to / problem / proposed_change / alternatives_considered / ordering_dependency を持つ)。life_OS CHANGELOG 向けに適応(release-level vs ECP-level): 7 フィールドに簡略化、最も重要な 3 つを保持(alternatives_considered / ordering_dependency / regression_cases_added)。
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
spec_id: changelog.v1
3+
description: CHANGELOG.md entry schema v1(v1.8.5+ 生效)。借鉴 eou-foundry ECP YAML frontmatter 模式 —— 每个 release entry 有结构化 YAML frontmatter(version、breaking_changes、alternatives_considered、ordering_dependency、regression_cases_added)+ markdown body 用于叙事 release notes。v1.8.5 前的 entry 保持叙事性(legacy)。
4+
status: active
5+
authoritative: true
6+
source_attribution: xiaolai/eou-foundry @ e4b12ce, self-evolution/ecp/ YAML schema
7+
introduced_in: v1.8.5
8+
---
9+
10+
# CHANGELOG 规范 v1
11+
12+
CHANGELOG.md entry v1.8.5 起有结构化 YAML frontmatter + markdown body。v1.8.5 前的 entry 是叙事性的,保持不变(legacy)。
13+
14+
## 为什么结构化 frontmatter
15+
16+
v1.8.4 CHANGELOG entry 是叙事性的 —— 对人类有用但机器不可解析。eou-foundry 帮助暴露 3 个问题:
17+
18+
1. **无 alternatives_considered**: entry 记录做了什么,没记录考虑了什么并拒绝了什么。"为什么没做 X" 失去历史。
19+
2. **无 ordering_dependency**: cohort releases(如 ECPs 0015-0017 必须一起 land)没有显式声明。cherry-pick 造成问题。
20+
3. **无 regression_cases_added**: 从"修了这个"到"加了回归测试防复发"的链接是隐式的,常缺失。
21+
22+
v1.8.5+ schema 修复这些。
23+
24+
## v1.8.5+ Entry Schema
25+
26+
```markdown
27+
---
28+
version: 1.8.5
29+
date: 2026-07-15
30+
type: major | minor | patch
31+
breaking_changes: # 项目列表
32+
- "SOUL.md schema v1 → v2(X-over-Y formulation 必填)"
33+
- "wiki entry schema v1 → v2(active+ entry outlier slot 必填)"
34+
- "21 agent frontmatter v1 → v2(authority_level / blast_radius 必填)"
35+
new_features: # 项目列表
36+
- "F1-F17 失败分类法(references/failure-taxonomy.md)"
37+
- "..."
38+
fixes: # 项目列表
39+
- "..."
40+
41+
# v1.8.5+ 必需: 至少 1 个被拒选项及原因
42+
alternatives_considered:
43+
- option: "保持 v1.8,分 6 个月做 30 个 minor patch"
44+
rejected_because: "30 个独立 release = 30 个迁移路径;用户要一次升级"
45+
- option: "保持叙事 CHANGELOG(无 YAML frontmatter)"
46+
rejected_because: "失去 grep-ability + cohort dependency 追踪"
47+
48+
# v1.8.5+ 必需: 跨 release 依赖声明
49+
ordering_dependency:
50+
blocked_by: [] # 必须先 land 的 SHA / version ref
51+
must_coexist_with: # 必须一起 ship 的其他 commits/refs
52+
- Stage 0(failure-taxonomy + refactoring-patterns)
53+
- Stage 1(SOUL v2)
54+
- Stage 2(wiki v2)
55+
# ... 等
56+
57+
# v1.8.5+ 必需: 此次 release 加的回归用例
58+
regression_cases_added:
59+
- rc-soul-no-priority
60+
- rc-soul-no-outlier
61+
- rc-soul-strawman-y
62+
- rc-wiki-no-outlier
63+
- rc-wiki-no-hypothesis
64+
- rc-agent-no-authority
65+
- rc-agent-blast-radius-violation
66+
---
67+
68+
## v1.8.5 — Hook Retirement + EOU Hardening · 2026-07-15
69+
70+
> 1 段 release 总结。
71+
72+
### 亮点
73+
74+
- 用户可见亮点项目列表
75+
- ...
76+
77+
### 迁移
78+
79+
- 用户如何从之前版本升级
80+
- 跑哪些 slash command(如 `/migrate-soul-v2`
81+
- 向后兼容说明(D3 12 个月 legacy 共存)
82+
83+
### 致谢 / 背景
84+
85+
- (可选叙事段)
86+
```
87+
88+
## v1.8.5+ 必需 YAML 字段
89+
90+
v1.8.5 起每个 release entry:
91+
92+
1. **version**: semver 字符串,如 `"1.8.5"`
93+
2. **date**: ISO YYYY-MM-DD
94+
3. **type**: `major | minor | patch | prerelease` 之一
95+
4. **breaking_changes**: 数组(非破坏性 release 可空;即使空也必需字段)
96+
5. **alternatives_considered**: ≥1 entry 含 `option` + `rejected_because`。"我们没考虑别的" 不是有效值。
97+
6. **ordering_dependency**: `blocked_by` 数组 + `must_coexist_with` 数组(独立 patch 可空)
98+
7. **regression_cases_added**: `rc-*` id 数组(无回归用例可空,但应 review —— 多数修复值得回归覆盖)
99+
100+
`new_features``fixes` 推荐但非必需。
101+
102+
## 验证
103+
104+
AUDITOR Mode 7(Stage 10 添加,v1.8.5 release 规划中)将验证:
105+
- v1.8.5+ 每个 release entry 有所有 7 个必需字段
106+
- `alternatives_considered` 有 ≥1 实质条目(LLM 启发式: rejected_because ≥20 字符 + 非平凡)
107+
- `ordering_dependency.must_coexist_with` 引用解析到实际 commits/PRs/Stages
108+
- `regression_cases_added` 引用存在于 `evals/regression-fixtures/`
109+
110+
## Legacy entries(v1.8.5 前)
111+
112+
v1.8.5 前的 CHANGELOG entry(v1.0.0 到 v1.8.4)保持叙事性。无需追溯迁移。Schema 从 v1.8.5 entry 开始适用。
113+
114+
## 三语同步
115+
116+
按 HARD RULE `三语文档同步`,YAML frontmatter schema 适用所有 3 个 CHANGELOG 文件:
117+
- `CHANGELOG.md`(EN)
118+
- `i18n/zh/CHANGELOG.md`(ZH)
119+
- `i18n/ja/CHANGELOG.md`(JA)
120+
121+
3 个都必须有同一 v1.8.5+ entry 含同一 YAML frontmatter(body 翻译但结构化字段相同)。
122+
123+
## 来源出处
124+
125+
eou-foundry @ e4b12ce — `self-evolution/ecp/*.yml` YAML schema(每个 ECP 有 id / target_eou / target_version_from / target_version_to / problem / proposed_change / alternatives_considered / ordering_dependency)。为 life_OS CHANGELOG 适配(release-level vs ECP-level):简化到 7 字段,保留 3 个最关键(alternatives_considered / ordering_dependency / regression_cases_added)。

pro/compliance/violations.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,60 @@
44
55
## Format
66

7+
### v1.8.4 and earlier (legacy — 77 historical rows)
8+
79
```
810
| Timestamp (ISO 8601) | Trigger | Type | Severity | Details | Resolved |
911
```
1012

13+
### v1.8.5+ format (HARD RULE per RFC Stage 8)
14+
15+
```
16+
| Timestamp (ISO 8601) | Trigger | Type (A-F) | F-Code | Severity | Details | Resolved |
17+
```
18+
19+
Every v1.8.5+ violation row MUST include the `F-Code` column with a value from `references/failure-taxonomy.md` (F1-F17). The legacy A-F process taxonomy (A1/A2/A3/B/C/D/E/F) and the F1-F17 architecture taxonomy are complementary — both apply per violation.
20+
21+
## F-Code Quick Reference
22+
23+
| F-Code | Class | When to use |
24+
|--------|-------|-------------|
25+
| F1 | INPUT_FAILURE | Required input missing / malformed / stale / ambiguous |
26+
| F2 | CONTEXT_FAILURE | Wrong context loaded / source of truth omitted |
27+
| F3 | SCHEMA_FAILURE | spec / input / output / validator schemas diverge |
28+
| F4 | SCOPE_FAILURE | agent / EOU / skill too broad / too narrow / mixed |
29+
| F5 | INSTRUCTION_FAILURE | Steps unclear / contradictory / non-executable |
30+
| F6a | STRUCTURAL_JUDGMENT | Agent conflates distinct judgments |
31+
| F6b | COVERAGE | Right judgment, no validation criteria |
32+
| F7 | VALIDATION_FAILURE | Validator passes invalid OR rejects valid |
33+
| F8 | TOOL_FAILURE | Script / model / API / external tool hard fail |
34+
| F9 | TRACE_FAILURE | Run unreconstructible / trace missing |
35+
| F10 | RESPONSIBILITY_FAILURE | No owner / approval gate / executor=approver |
36+
| F11 | LIFECYCLE_FAILURE | Wrong maturity standard applied |
37+
| F12 | DRIFT_FAILURE | Specs / scripts / docs / validators diverged |
38+
| F13 | PERFORMANCE_FAILURE | Correct but degrades at scale |
39+
| **F14** | **SILENT_JUDGMENT_FAILURE** | **Contested choice without value_invocations (most dangerous)** |
40+
| F15 | VALUE_HIERARCHY_FAILURE | Lower-priority SOUL dim over higher-priority |
41+
| F16 | VALUE_DRIFT_FAILURE | Multi-run invocation drift from SOUL priority |
42+
| F17 | VALUE_HALLUCINATION_FAILURE | Cited SOUL dim id doesn't exist |
43+
44+
## A-F → F-Code Typical Mappings
45+
46+
For legacy A-F violations, the typical F-code mapping (one A-F class often spans multiple F-codes; pick the most specific):
47+
48+
| A-F Class | Common F-codes |
49+
|-----------|----------------|
50+
| A1 (skip retrospective subagent) | F11 LIFECYCLE_FAILURE |
51+
| A2 (skip archiver phase) | F11 LIFECYCLE_FAILURE |
52+
| A3 (skip mandatory tool call) | F1 INPUT_FAILURE OR F9 TRACE_FAILURE |
53+
| B (confabulated path / fabricated evidence) | F12 DRIFT_FAILURE OR F17 VALUE_HALLUCINATION |
54+
| C (skip step / placeholder phase / no audit trail) | F9 TRACE_FAILURE OR F11 LIFECYCLE_FAILURE |
55+
| D (self-approve / responsibility violation) | F10 RESPONSIBILITY_FAILURE |
56+
| E (release alignment failure / publish-skip) | F11 LIFECYCLE_FAILURE |
57+
| F (outbound PII leak) | F2 CONTEXT_FAILURE + F8 TOOL_FAILURE |
58+
59+
Retroactive F-code labeling of 77 historical rows is OPTIONAL — done lazily during AUDITOR Mode 3 reviews or during incident triage.
60+
1161
## Violations
1262

1363
| Timestamp | Trigger | Type | Severity | Details | Resolved |

0 commit comments

Comments
 (0)