claude-flow-novice 2.11.0 → 2.12.0

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.
@@ -0,0 +1,349 @@
1
+ ---
2
+ skill_id: cfn-changelog-management
3
+ name: CFN Changelog Management
4
+ version: 1.0.0
5
+ category: documentation
6
+ tags: [changelog, versioning, release-notes, sparse-logging]
7
+ dependencies: []
8
+ ---
9
+
10
+ # CFN Changelog Management Skill
11
+
12
+ ## Purpose
13
+ Systematically track implementation changes with sparse, structured entries appended to project changelog. Enables quick visibility into what changed, when, and why without verbose commit-style messages.
14
+
15
+ ## Problem Solved
16
+ Traditional changelogs require manual curation and often become stale or inconsistent. Agents completing features, fixing bugs, or making architectural changes need a lightweight way to document impact without context-switching to git commits or detailed documentation.
17
+
18
+ ## When to Use
19
+
20
+ ### ✅ REQUIRED Usage Scenarios
21
+ - **After feature implementation** - Agent completes feature work
22
+ - **After bug fix** - Agent resolves issue with code changes
23
+ - **After breaking change** - API/interface modifications that affect consumers
24
+ - **After dependency update** - Major version bumps or security patches
25
+ - **After architectural change** - Coordination pattern modifications, skill refactors
26
+
27
+ ### ⚠️ OPTIONAL Usage Scenarios
28
+ - **After performance optimization** - Measurable improvements (>10% speedup)
29
+ - **After security enhancement** - Hardening, vulnerability fixes
30
+ - **Internal refactoring** - Code cleanup without behavioral changes (use judgment)
31
+
32
+ ### ❌ DO NOT USE For
33
+ - **Routine maintenance** - Formatting, linting, comment updates
34
+ - **Work-in-progress** - Incomplete features or experimental changes
35
+ - **Test-only changes** - Adding tests without production code changes
36
+ - **Documentation-only updates** - README edits, comment clarifications
37
+
38
+ ## Interface
39
+
40
+ ### Primary Script: `add-changelog-entry.sh`
41
+
42
+ **Required Parameters:**
43
+ - `--type`: Entry type (feature|bugfix|breaking|dependency|architecture|performance|security)
44
+ - `--summary`: One-line description (10-100 chars)
45
+ - `--impact`: What changed and why it matters
46
+
47
+ **Optional Parameters:**
48
+ - `--version`: Target version (default: auto-increment patch)
49
+ - `--issue`: Related issue/bug number (e.g., "BUG-123", "#456")
50
+ - `--files`: Key files affected (comma-separated, max 5)
51
+ - `--migration`: Migration notes for breaking changes
52
+
53
+ **Usage:**
54
+ ```bash
55
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
56
+ --type "feature" \
57
+ --summary "Add backlog management skill for deferred work tracking" \
58
+ --impact "Agents can now systematically capture deferred items with structured metadata instead of losing context in chat history" \
59
+ --files ".claude/skills/cfn-backlog-management/SKILL.md,readme/BACKLOG.md"
60
+ ```
61
+
62
+ ### Output Location
63
+ All entries appended to: `readme/CHANGELOG.md`
64
+
65
+ ## Changelog File Structure
66
+
67
+ ```markdown
68
+ # Claude Flow Novice Changelog
69
+
70
+ ## [Unreleased]
71
+
72
+ ### Features
73
+ - Add backlog management skill (2025-10-31)
74
+ - Impact: Systematic deferred work tracking with priority/tag organization
75
+ - Files: `.claude/skills/cfn-backlog-management/`
76
+
77
+ ### Bug Fixes
78
+
79
+ ### Breaking Changes
80
+
81
+ ### Dependencies
82
+
83
+ ### Architecture
84
+
85
+ ### Performance
86
+
87
+ ### Security
88
+
89
+ ---
90
+
91
+ ## [2.11.0] - 2025-10-31
92
+
93
+ ### Features
94
+ - Backlog management skill implementation
95
+ - Impact: Centralized tracking of deferred work items
96
+ - Files: `.claude/skills/cfn-backlog-management/add-backlog-item.sh`
97
+
98
+ ...
99
+ ```
100
+
101
+ ## Entry Types
102
+
103
+ ### Feature
104
+ New functionality, skills, commands, or capabilities.
105
+ ```bash
106
+ --type "feature"
107
+ --summary "Implement Redis pub/sub coordination for zero-token waiting"
108
+ --impact "Agents block on BLPOP instead of polling, eliminating API calls during wait cycles"
109
+ ```
110
+
111
+ ### Bug Fix
112
+ Defect resolution, error handling improvements.
113
+ ```bash
114
+ --type "bugfix"
115
+ --summary "Fix race condition in Loop 3 confidence collection"
116
+ --impact "Orchestrator now uses synchronous temp file capture instead of polling Redis keys"
117
+ --issue "BUG-10"
118
+ ```
119
+
120
+ ### Breaking Change
121
+ Incompatible changes requiring user/agent migration.
122
+ ```bash
123
+ --type "breaking"
124
+ --summary "Rename skill cfn-redis-coordination → cfn-swarm-coordination"
125
+ --impact "All agent spawn commands must update skill references"
126
+ --migration "Run: sed -i 's/cfn-redis-coordination/cfn-swarm-coordination/g' .claude/agents/**/*.md"
127
+ ```
128
+
129
+ ### Dependency
130
+ Package updates, version bumps, security patches.
131
+ ```bash
132
+ --type "dependency"
133
+ --summary "Upgrade redis 5.0.0 → 5.8.3"
134
+ --impact "Fixes CVE-2024-1234, adds BLPOP timeout parameter support"
135
+ ```
136
+
137
+ ### Architecture
138
+ Coordination pattern changes, skill refactors, system design updates.
139
+ ```bash
140
+ --type "architecture"
141
+ --summary "Extract output processing into dedicated skill"
142
+ --impact "95% code reuse between Loop 3 and Loop 2 consensus collection"
143
+ --files ".claude/skills/cfn-agent-output-processing/SKILL.md"
144
+ ```
145
+
146
+ ### Performance
147
+ Optimizations with measurable impact.
148
+ ```bash
149
+ --type "performance"
150
+ --summary "Parallel agent spawning with background processes"
151
+ --impact "3x speedup for 3-agent coordination (sequential: 15s → parallel: 5s max latency)"
152
+ ```
153
+
154
+ ### Security
155
+ Hardening, vulnerability fixes, audit improvements.
156
+ ```bash
157
+ --type "security"
158
+ --summary "Add pre-edit backup hook for safe file revert"
159
+ --impact "Prevents git conflicts in parallel sessions, 24h backup retention"
160
+ ```
161
+
162
+ ## Validation Rules
163
+
164
+ 1. **Type validation**: Must be one of 7 defined types
165
+ 2. **Summary length**: 10-100 characters (enforces brevity)
166
+ 3. **Impact required**: Cannot be empty (enforces "why it matters")
167
+ 4. **File limit**: Max 5 files (prevents noise)
168
+ 5. **Version format**: Semantic versioning (X.Y.Z)
169
+
170
+ ## Sparse Language Guidelines
171
+
172
+ ### ✅ Good Examples
173
+ ```
174
+ Summary: "Add Redis coordination skill"
175
+ Impact: "Zero-token agent waiting via BLPOP"
176
+
177
+ Summary: "Fix confidence parsing edge case"
178
+ Impact: "Handles percentage format (85%) in addition to decimal (0.85)"
179
+
180
+ Summary: "Upgrade better-sqlite3 to v12.4.1"
181
+ Impact: "Node 22 compatibility, fixes installation errors on WSL2"
182
+ ```
183
+
184
+ ### ❌ Bad Examples (Too Verbose)
185
+ ```
186
+ Summary: "We have implemented a comprehensive Redis-based coordination system..."
187
+ Impact: "This change allows agents to coordinate more efficiently by using a blocking..."
188
+
189
+ Summary: "Fixed a bug"
190
+ Impact: "There was an issue that has been resolved"
191
+ ```
192
+
193
+ ### Sparse Pattern Rules
194
+ - **Active voice**: "Add feature" not "Feature added"
195
+ - **No articles**: "Fix bug" not "Fix the bug"
196
+ - **No fluff**: "Enables X" not "This change enables X"
197
+ - **Measurable impact**: Include numbers when relevant (3x speedup, 95% reduction)
198
+
199
+ ## Integration Examples
200
+
201
+ ### Loop 3 Agent (After Feature Implementation)
202
+ ```bash
203
+ # Agent completes feature work
204
+ Edit: file_path="src/new-feature.ts" ...
205
+
206
+ # Document change
207
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
208
+ --type "feature" \
209
+ --summary "JWT authentication middleware" \
210
+ --impact "Stateless auth reduces session storage by 80%" \
211
+ --files "src/middleware/auth.ts,src/types/jwt.ts"
212
+ ```
213
+
214
+ ### Loop 2 Validator (After Identifying Bug Fix)
215
+ ```bash
216
+ # Validator reviews fix
217
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
218
+ --type "bugfix" \
219
+ --summary "Prevent null pointer in Redis connection retry" \
220
+ --impact "Eliminates crashes during Redis unavailability" \
221
+ --issue "BUG-42" \
222
+ --files "src/redis/client.ts"
223
+ ```
224
+
225
+ ### Product Owner (After Architectural Decision)
226
+ ```bash
227
+ # Product Owner approves design change
228
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
229
+ --type "architecture" \
230
+ --summary "Split orchestrator into modular helper scripts" \
231
+ --impact "78% code reduction, improved testability" \
232
+ --files ".claude/skills/cfn-loop-orchestration/helpers/"
233
+ ```
234
+
235
+ ## Versioning Strategy
236
+
237
+ ### Auto-Increment (Default)
238
+ Script reads current version from `package.json`, increments patch:
239
+ - Current: `2.11.0` → Entry added to: `[Unreleased]`
240
+ - On release: Move `[Unreleased]` → `[2.11.1] - YYYY-MM-DD`
241
+
242
+ ### Manual Version (Override)
243
+ ```bash
244
+ --version "3.0.0" # Specify major/minor bump explicitly
245
+ ```
246
+
247
+ ### Release Workflow
248
+ 1. Agents add entries to `[Unreleased]` section
249
+ 2. On release trigger (manual or automated):
250
+ - Rename `[Unreleased]` → `[X.Y.Z] - DATE`
251
+ - Create new empty `[Unreleased]` section
252
+ - Update `package.json` version
253
+
254
+ ## Query Interface
255
+
256
+ **Filter by type:**
257
+ ```bash
258
+ sed -n '/### Features/,/### Bug Fixes/p' readme/CHANGELOG.md
259
+ ```
260
+
261
+ **Recent entries (last 10):**
262
+ ```bash
263
+ grep -A 2 "^- " readme/CHANGELOG.md | head -30
264
+ ```
265
+
266
+ **Search by keyword:**
267
+ ```bash
268
+ grep -i "redis" readme/CHANGELOG.md
269
+ ```
270
+
271
+ **Entries for specific version:**
272
+ ```bash
273
+ sed -n '/## \[2.11.0\]/,/## \[2.10.0\]/p' readme/CHANGELOG.md
274
+ ```
275
+
276
+ ## Best Practices
277
+
278
+ 1. **Immediate logging**: Add entry immediately after completing work, not batched
279
+ 2. **User perspective**: Describe impact from user/agent consumer viewpoint
280
+ 3. **File references**: Include key files for context (not exhaustive list)
281
+ 4. **Link issues**: Reference bug numbers or GitHub issues when applicable
282
+ 5. **Migration notes**: Always include for breaking changes
283
+
284
+ ## Anti-Patterns
285
+
286
+ ❌ **Verbose commit messages**: "This commit implements a new feature that..."
287
+ ❌ **Generic summaries**: "Fixed bugs", "Updated code", "Improvements"
288
+ ❌ **Missing impact**: "Added function X" (Why does it matter?)
289
+ ❌ **Duplicate entries**: Check existing changelog before adding
290
+ ❌ **Version conflicts**: Don't manually edit version, use --version flag
291
+
292
+ ## Example Entry Lifecycle
293
+
294
+ **Step 1: Agent completes feature**
295
+ ```bash
296
+ add-changelog-entry.sh \
297
+ --type "feature" \
298
+ --summary "Multi-pattern confidence parsing" \
299
+ --impact "100% extraction success, supports explicit/percentage/qualitative formats"
300
+ ```
301
+
302
+ **Result in CHANGELOG.md:**
303
+ ```markdown
304
+ ## [Unreleased]
305
+
306
+ ### Features
307
+ - Multi-pattern confidence parsing (2025-10-31)
308
+ - Impact: 100% extraction success, supports explicit/percentage/qualitative formats
309
+ - Files: `.claude/skills/cfn-agent-output-processing/parse-confidence.sh`
310
+ ```
311
+
312
+ **Step 2: Release triggered**
313
+ ```bash
314
+ # Manual or automated
315
+ npm version minor # 2.11.0 → 2.12.0
316
+ ```
317
+
318
+ **Result:**
319
+ ```markdown
320
+ ## [2.12.0] - 2025-11-01
321
+
322
+ ### Features
323
+ - Multi-pattern confidence parsing (2025-10-31)
324
+ - Impact: 100% extraction success, supports explicit/percentage/qualitative formats
325
+ - Files: `.claude/skills/cfn-agent-output-processing/parse-confidence.sh`
326
+
327
+ ---
328
+
329
+ ## [Unreleased]
330
+
331
+ ### Features
332
+
333
+ ### Bug Fixes
334
+ ...
335
+ ```
336
+
337
+ ## Success Metrics
338
+
339
+ - **Entry quality**: ≥90% of entries include measurable impact
340
+ - **Sparse language**: Average summary length ≤60 characters
341
+ - **Timeliness**: ≥80% of entries added within same sprint as implementation
342
+ - **Coverage**: 100% of features/breaking changes documented
343
+ - **Queryability**: Users can find relevant changes in <30 seconds
344
+
345
+ ## References
346
+
347
+ - **Sparse Language**: readme/CLAUDE.md - Documentation Guidelines
348
+ - **Backlog Management**: `.claude/skills/cfn-backlog-management/SKILL.md`
349
+ - **Versioning**: `package.json` - Single source of truth
@@ -0,0 +1,200 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # cfn-changelog-management/add-changelog-entry.sh
5
+ # Adds sparse, structured entries to readme/CHANGELOG.md
6
+
7
+ # Default values
8
+ TYPE=""
9
+ SUMMARY=""
10
+ IMPACT=""
11
+ VERSION=""
12
+ ISSUE=""
13
+ FILES=""
14
+ MIGRATION=""
15
+
16
+ # Parse arguments
17
+ while [[ $# -gt 0 ]]; do
18
+ case $1 in
19
+ --type)
20
+ TYPE="$2"
21
+ shift 2
22
+ ;;
23
+ --summary)
24
+ SUMMARY="$2"
25
+ shift 2
26
+ ;;
27
+ --impact)
28
+ IMPACT="$2"
29
+ shift 2
30
+ ;;
31
+ --version)
32
+ VERSION="$2"
33
+ shift 2
34
+ ;;
35
+ --issue)
36
+ ISSUE="$2"
37
+ shift 2
38
+ ;;
39
+ --files)
40
+ FILES="$2"
41
+ shift 2
42
+ ;;
43
+ --migration)
44
+ MIGRATION="$2"
45
+ shift 2
46
+ ;;
47
+ *)
48
+ echo "Unknown argument: $1" >&2
49
+ exit 1
50
+ ;;
51
+ esac
52
+ done
53
+
54
+ # Validation
55
+ if [[ -z "$TYPE" ]]; then
56
+ echo "Error: --type is required" >&2
57
+ echo "Valid types: feature, bugfix, breaking, dependency, architecture, performance, security" >&2
58
+ exit 1
59
+ fi
60
+
61
+ if [[ -z "$SUMMARY" ]]; then
62
+ echo "Error: --summary is required" >&2
63
+ exit 1
64
+ fi
65
+
66
+ if [[ -z "$IMPACT" ]]; then
67
+ echo "Error: --impact is required" >&2
68
+ exit 1
69
+ fi
70
+
71
+ # Validate type
72
+ VALID_TYPES="feature|bugfix|breaking|dependency|architecture|performance|security"
73
+ if [[ ! "$TYPE" =~ ^($VALID_TYPES)$ ]]; then
74
+ echo "Error: --type must be one of: feature, bugfix, breaking, dependency, architecture, performance, security (got: $TYPE)" >&2
75
+ exit 1
76
+ fi
77
+
78
+ # Validate summary length
79
+ SUMMARY_LENGTH=${#SUMMARY}
80
+ if (( SUMMARY_LENGTH < 10 )); then
81
+ echo "Error: --summary must be at least 10 characters (got $SUMMARY_LENGTH)" >&2
82
+ exit 1
83
+ fi
84
+
85
+ if (( SUMMARY_LENGTH > 100 )); then
86
+ echo "Error: --summary must be at most 100 characters (got $SUMMARY_LENGTH)" >&2
87
+ exit 1
88
+ fi
89
+
90
+ # Validate file limit
91
+ if [[ -n "$FILES" ]]; then
92
+ FILE_COUNT=$(echo "$FILES" | tr ',' '\n' | wc -l)
93
+ if (( FILE_COUNT > 5 )); then
94
+ echo "Error: --files can contain at most 5 files (got $FILE_COUNT)" >&2
95
+ exit 1
96
+ fi
97
+ fi
98
+
99
+ # Path to changelog
100
+ CHANGELOG_FILE="readme/CHANGELOG.md"
101
+ PROJECT_ROOT="/mnt/c/Users/masha/Documents/claude-flow-novice"
102
+ CHANGELOG_PATH="$PROJECT_ROOT/$CHANGELOG_FILE"
103
+
104
+ # Check if changelog exists
105
+ if [[ ! -f "$CHANGELOG_PATH" ]]; then
106
+ echo "Error: Changelog not found at $CHANGELOG_PATH" >&2
107
+ echo "Expected format: readme/CHANGELOG.md" >&2
108
+ exit 1
109
+ fi
110
+
111
+ # Map type to section header
112
+ case "$TYPE" in
113
+ feature)
114
+ SECTION="### Features"
115
+ ;;
116
+ bugfix)
117
+ SECTION="### Bug Fixes"
118
+ ;;
119
+ breaking)
120
+ SECTION="### Breaking Changes"
121
+ ;;
122
+ dependency)
123
+ SECTION="### Dependencies"
124
+ ;;
125
+ architecture)
126
+ SECTION="### Architecture"
127
+ ;;
128
+ performance)
129
+ SECTION="### Performance"
130
+ ;;
131
+ security)
132
+ SECTION="### Security"
133
+ ;;
134
+ esac
135
+
136
+ # Current date
137
+ CURRENT_DATE=$(date +%Y-%m-%d)
138
+
139
+ # Build entry
140
+ ENTRY="- $SUMMARY ($CURRENT_DATE)"
141
+ ENTRY="$ENTRY\n - Impact: $IMPACT"
142
+
143
+ if [[ -n "$FILES" ]]; then
144
+ ENTRY="$ENTRY\n - Files: \`$FILES\`"
145
+ fi
146
+
147
+ if [[ -n "$ISSUE" ]]; then
148
+ ENTRY="$ENTRY\n - Issue: $ISSUE"
149
+ fi
150
+
151
+ if [[ -n "$MIGRATION" ]]; then
152
+ ENTRY="$ENTRY\n - Migration: $MIGRATION"
153
+ fi
154
+
155
+ # Find [Unreleased] section and appropriate subsection
156
+ # Insert entry after section header
157
+
158
+ # Check if [Unreleased] section exists
159
+ if ! grep -q "## \[Unreleased\]" "$CHANGELOG_PATH"; then
160
+ echo "Error: [Unreleased] section not found in changelog" >&2
161
+ echo "Expected format:" >&2
162
+ echo "## [Unreleased]" >&2
163
+ echo "" >&2
164
+ echo "### Features" >&2
165
+ exit 1
166
+ fi
167
+
168
+ # Check if section exists within [Unreleased]
169
+ if ! awk '/## \[Unreleased\]/,/^---$/ { if (/'"$SECTION"'/) found=1 } END { exit !found }' "$CHANGELOG_PATH"; then
170
+ echo "Error: $SECTION not found within [Unreleased] section" >&2
171
+ exit 1
172
+ fi
173
+
174
+ # Insert entry after section header (first blank line or entry)
175
+ awk -v section="$SECTION" -v entry="$ENTRY" '
176
+ # Track if we are in [Unreleased] section
177
+ /## \[Unreleased\]/ { in_unreleased=1 }
178
+ /^## \[/ && !/## \[Unreleased\]/ { in_unreleased=0 }
179
+
180
+ # When we find the target section within [Unreleased]
181
+ in_unreleased && $0 ~ section {
182
+ print
183
+ getline # Read next line
184
+ print # Print it (usually blank line)
185
+ print entry
186
+ next
187
+ }
188
+ {print}
189
+ ' "$CHANGELOG_PATH" > "${CHANGELOG_PATH}.tmp"
190
+
191
+ mv "${CHANGELOG_PATH}.tmp" "$CHANGELOG_PATH"
192
+
193
+ echo "✅ Changelog entry added successfully"
194
+ echo " Type: $TYPE"
195
+ echo " Summary: $SUMMARY"
196
+ echo " Section: $SECTION"
197
+ echo " Location: $CHANGELOG_FILE"
198
+
199
+ # Output path for scripting
200
+ echo "$CHANGELOG_PATH"
@@ -0,0 +1,349 @@
1
+ ---
2
+ skill_id: cfn-changelog-management
3
+ name: CFN Changelog Management
4
+ version: 1.0.0
5
+ category: documentation
6
+ tags: [changelog, versioning, release-notes, sparse-logging]
7
+ dependencies: []
8
+ ---
9
+
10
+ # CFN Changelog Management Skill
11
+
12
+ ## Purpose
13
+ Systematically track implementation changes with sparse, structured entries appended to project changelog. Enables quick visibility into what changed, when, and why without verbose commit-style messages.
14
+
15
+ ## Problem Solved
16
+ Traditional changelogs require manual curation and often become stale or inconsistent. Agents completing features, fixing bugs, or making architectural changes need a lightweight way to document impact without context-switching to git commits or detailed documentation.
17
+
18
+ ## When to Use
19
+
20
+ ### ✅ REQUIRED Usage Scenarios
21
+ - **After feature implementation** - Agent completes feature work
22
+ - **After bug fix** - Agent resolves issue with code changes
23
+ - **After breaking change** - API/interface modifications that affect consumers
24
+ - **After dependency update** - Major version bumps or security patches
25
+ - **After architectural change** - Coordination pattern modifications, skill refactors
26
+
27
+ ### ⚠️ OPTIONAL Usage Scenarios
28
+ - **After performance optimization** - Measurable improvements (>10% speedup)
29
+ - **After security enhancement** - Hardening, vulnerability fixes
30
+ - **Internal refactoring** - Code cleanup without behavioral changes (use judgment)
31
+
32
+ ### ❌ DO NOT USE For
33
+ - **Routine maintenance** - Formatting, linting, comment updates
34
+ - **Work-in-progress** - Incomplete features or experimental changes
35
+ - **Test-only changes** - Adding tests without production code changes
36
+ - **Documentation-only updates** - README edits, comment clarifications
37
+
38
+ ## Interface
39
+
40
+ ### Primary Script: `add-changelog-entry.sh`
41
+
42
+ **Required Parameters:**
43
+ - `--type`: Entry type (feature|bugfix|breaking|dependency|architecture|performance|security)
44
+ - `--summary`: One-line description (10-100 chars)
45
+ - `--impact`: What changed and why it matters
46
+
47
+ **Optional Parameters:**
48
+ - `--version`: Target version (default: auto-increment patch)
49
+ - `--issue`: Related issue/bug number (e.g., "BUG-123", "#456")
50
+ - `--files`: Key files affected (comma-separated, max 5)
51
+ - `--migration`: Migration notes for breaking changes
52
+
53
+ **Usage:**
54
+ ```bash
55
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
56
+ --type "feature" \
57
+ --summary "Add backlog management skill for deferred work tracking" \
58
+ --impact "Agents can now systematically capture deferred items with structured metadata instead of losing context in chat history" \
59
+ --files ".claude/skills/cfn-backlog-management/SKILL.md,readme/BACKLOG.md"
60
+ ```
61
+
62
+ ### Output Location
63
+ All entries appended to: `readme/CHANGELOG.md`
64
+
65
+ ## Changelog File Structure
66
+
67
+ ```markdown
68
+ # Claude Flow Novice Changelog
69
+
70
+ ## [Unreleased]
71
+
72
+ ### Features
73
+ - Add backlog management skill (2025-10-31)
74
+ - Impact: Systematic deferred work tracking with priority/tag organization
75
+ - Files: `.claude/skills/cfn-backlog-management/`
76
+
77
+ ### Bug Fixes
78
+
79
+ ### Breaking Changes
80
+
81
+ ### Dependencies
82
+
83
+ ### Architecture
84
+
85
+ ### Performance
86
+
87
+ ### Security
88
+
89
+ ---
90
+
91
+ ## [2.11.0] - 2025-10-31
92
+
93
+ ### Features
94
+ - Backlog management skill implementation
95
+ - Impact: Centralized tracking of deferred work items
96
+ - Files: `.claude/skills/cfn-backlog-management/add-backlog-item.sh`
97
+
98
+ ...
99
+ ```
100
+
101
+ ## Entry Types
102
+
103
+ ### Feature
104
+ New functionality, skills, commands, or capabilities.
105
+ ```bash
106
+ --type "feature"
107
+ --summary "Implement Redis pub/sub coordination for zero-token waiting"
108
+ --impact "Agents block on BLPOP instead of polling, eliminating API calls during wait cycles"
109
+ ```
110
+
111
+ ### Bug Fix
112
+ Defect resolution, error handling improvements.
113
+ ```bash
114
+ --type "bugfix"
115
+ --summary "Fix race condition in Loop 3 confidence collection"
116
+ --impact "Orchestrator now uses synchronous temp file capture instead of polling Redis keys"
117
+ --issue "BUG-10"
118
+ ```
119
+
120
+ ### Breaking Change
121
+ Incompatible changes requiring user/agent migration.
122
+ ```bash
123
+ --type "breaking"
124
+ --summary "Rename skill cfn-redis-coordination → cfn-swarm-coordination"
125
+ --impact "All agent spawn commands must update skill references"
126
+ --migration "Run: sed -i 's/cfn-redis-coordination/cfn-swarm-coordination/g' .claude/agents/**/*.md"
127
+ ```
128
+
129
+ ### Dependency
130
+ Package updates, version bumps, security patches.
131
+ ```bash
132
+ --type "dependency"
133
+ --summary "Upgrade redis 5.0.0 → 5.8.3"
134
+ --impact "Fixes CVE-2024-1234, adds BLPOP timeout parameter support"
135
+ ```
136
+
137
+ ### Architecture
138
+ Coordination pattern changes, skill refactors, system design updates.
139
+ ```bash
140
+ --type "architecture"
141
+ --summary "Extract output processing into dedicated skill"
142
+ --impact "95% code reuse between Loop 3 and Loop 2 consensus collection"
143
+ --files ".claude/skills/cfn-agent-output-processing/SKILL.md"
144
+ ```
145
+
146
+ ### Performance
147
+ Optimizations with measurable impact.
148
+ ```bash
149
+ --type "performance"
150
+ --summary "Parallel agent spawning with background processes"
151
+ --impact "3x speedup for 3-agent coordination (sequential: 15s → parallel: 5s max latency)"
152
+ ```
153
+
154
+ ### Security
155
+ Hardening, vulnerability fixes, audit improvements.
156
+ ```bash
157
+ --type "security"
158
+ --summary "Add pre-edit backup hook for safe file revert"
159
+ --impact "Prevents git conflicts in parallel sessions, 24h backup retention"
160
+ ```
161
+
162
+ ## Validation Rules
163
+
164
+ 1. **Type validation**: Must be one of 7 defined types
165
+ 2. **Summary length**: 10-100 characters (enforces brevity)
166
+ 3. **Impact required**: Cannot be empty (enforces "why it matters")
167
+ 4. **File limit**: Max 5 files (prevents noise)
168
+ 5. **Version format**: Semantic versioning (X.Y.Z)
169
+
170
+ ## Sparse Language Guidelines
171
+
172
+ ### ✅ Good Examples
173
+ ```
174
+ Summary: "Add Redis coordination skill"
175
+ Impact: "Zero-token agent waiting via BLPOP"
176
+
177
+ Summary: "Fix confidence parsing edge case"
178
+ Impact: "Handles percentage format (85%) in addition to decimal (0.85)"
179
+
180
+ Summary: "Upgrade better-sqlite3 to v12.4.1"
181
+ Impact: "Node 22 compatibility, fixes installation errors on WSL2"
182
+ ```
183
+
184
+ ### ❌ Bad Examples (Too Verbose)
185
+ ```
186
+ Summary: "We have implemented a comprehensive Redis-based coordination system..."
187
+ Impact: "This change allows agents to coordinate more efficiently by using a blocking..."
188
+
189
+ Summary: "Fixed a bug"
190
+ Impact: "There was an issue that has been resolved"
191
+ ```
192
+
193
+ ### Sparse Pattern Rules
194
+ - **Active voice**: "Add feature" not "Feature added"
195
+ - **No articles**: "Fix bug" not "Fix the bug"
196
+ - **No fluff**: "Enables X" not "This change enables X"
197
+ - **Measurable impact**: Include numbers when relevant (3x speedup, 95% reduction)
198
+
199
+ ## Integration Examples
200
+
201
+ ### Loop 3 Agent (After Feature Implementation)
202
+ ```bash
203
+ # Agent completes feature work
204
+ Edit: file_path="src/new-feature.ts" ...
205
+
206
+ # Document change
207
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
208
+ --type "feature" \
209
+ --summary "JWT authentication middleware" \
210
+ --impact "Stateless auth reduces session storage by 80%" \
211
+ --files "src/middleware/auth.ts,src/types/jwt.ts"
212
+ ```
213
+
214
+ ### Loop 2 Validator (After Identifying Bug Fix)
215
+ ```bash
216
+ # Validator reviews fix
217
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
218
+ --type "bugfix" \
219
+ --summary "Prevent null pointer in Redis connection retry" \
220
+ --impact "Eliminates crashes during Redis unavailability" \
221
+ --issue "BUG-42" \
222
+ --files "src/redis/client.ts"
223
+ ```
224
+
225
+ ### Product Owner (After Architectural Decision)
226
+ ```bash
227
+ # Product Owner approves design change
228
+ ./.claude/skills/cfn-changelog-management/add-changelog-entry.sh \
229
+ --type "architecture" \
230
+ --summary "Split orchestrator into modular helper scripts" \
231
+ --impact "78% code reduction, improved testability" \
232
+ --files ".claude/skills/cfn-loop-orchestration/helpers/"
233
+ ```
234
+
235
+ ## Versioning Strategy
236
+
237
+ ### Auto-Increment (Default)
238
+ Script reads current version from `package.json`, increments patch:
239
+ - Current: `2.11.0` → Entry added to: `[Unreleased]`
240
+ - On release: Move `[Unreleased]` → `[2.11.1] - YYYY-MM-DD`
241
+
242
+ ### Manual Version (Override)
243
+ ```bash
244
+ --version "3.0.0" # Specify major/minor bump explicitly
245
+ ```
246
+
247
+ ### Release Workflow
248
+ 1. Agents add entries to `[Unreleased]` section
249
+ 2. On release trigger (manual or automated):
250
+ - Rename `[Unreleased]` → `[X.Y.Z] - DATE`
251
+ - Create new empty `[Unreleased]` section
252
+ - Update `package.json` version
253
+
254
+ ## Query Interface
255
+
256
+ **Filter by type:**
257
+ ```bash
258
+ sed -n '/### Features/,/### Bug Fixes/p' readme/CHANGELOG.md
259
+ ```
260
+
261
+ **Recent entries (last 10):**
262
+ ```bash
263
+ grep -A 2 "^- " readme/CHANGELOG.md | head -30
264
+ ```
265
+
266
+ **Search by keyword:**
267
+ ```bash
268
+ grep -i "redis" readme/CHANGELOG.md
269
+ ```
270
+
271
+ **Entries for specific version:**
272
+ ```bash
273
+ sed -n '/## \[2.11.0\]/,/## \[2.10.0\]/p' readme/CHANGELOG.md
274
+ ```
275
+
276
+ ## Best Practices
277
+
278
+ 1. **Immediate logging**: Add entry immediately after completing work, not batched
279
+ 2. **User perspective**: Describe impact from user/agent consumer viewpoint
280
+ 3. **File references**: Include key files for context (not exhaustive list)
281
+ 4. **Link issues**: Reference bug numbers or GitHub issues when applicable
282
+ 5. **Migration notes**: Always include for breaking changes
283
+
284
+ ## Anti-Patterns
285
+
286
+ ❌ **Verbose commit messages**: "This commit implements a new feature that..."
287
+ ❌ **Generic summaries**: "Fixed bugs", "Updated code", "Improvements"
288
+ ❌ **Missing impact**: "Added function X" (Why does it matter?)
289
+ ❌ **Duplicate entries**: Check existing changelog before adding
290
+ ❌ **Version conflicts**: Don't manually edit version, use --version flag
291
+
292
+ ## Example Entry Lifecycle
293
+
294
+ **Step 1: Agent completes feature**
295
+ ```bash
296
+ add-changelog-entry.sh \
297
+ --type "feature" \
298
+ --summary "Multi-pattern confidence parsing" \
299
+ --impact "100% extraction success, supports explicit/percentage/qualitative formats"
300
+ ```
301
+
302
+ **Result in CHANGELOG.md:**
303
+ ```markdown
304
+ ## [Unreleased]
305
+
306
+ ### Features
307
+ - Multi-pattern confidence parsing (2025-10-31)
308
+ - Impact: 100% extraction success, supports explicit/percentage/qualitative formats
309
+ - Files: `.claude/skills/cfn-agent-output-processing/parse-confidence.sh`
310
+ ```
311
+
312
+ **Step 2: Release triggered**
313
+ ```bash
314
+ # Manual or automated
315
+ npm version minor # 2.11.0 → 2.12.0
316
+ ```
317
+
318
+ **Result:**
319
+ ```markdown
320
+ ## [2.12.0] - 2025-11-01
321
+
322
+ ### Features
323
+ - Multi-pattern confidence parsing (2025-10-31)
324
+ - Impact: 100% extraction success, supports explicit/percentage/qualitative formats
325
+ - Files: `.claude/skills/cfn-agent-output-processing/parse-confidence.sh`
326
+
327
+ ---
328
+
329
+ ## [Unreleased]
330
+
331
+ ### Features
332
+
333
+ ### Bug Fixes
334
+ ...
335
+ ```
336
+
337
+ ## Success Metrics
338
+
339
+ - **Entry quality**: ≥90% of entries include measurable impact
340
+ - **Sparse language**: Average summary length ≤60 characters
341
+ - **Timeliness**: ≥80% of entries added within same sprint as implementation
342
+ - **Coverage**: 100% of features/breaking changes documented
343
+ - **Queryability**: Users can find relevant changes in <30 seconds
344
+
345
+ ## References
346
+
347
+ - **Sparse Language**: readme/CLAUDE.md - Documentation Guidelines
348
+ - **Backlog Management**: `.claude/skills/cfn-backlog-management/SKILL.md`
349
+ - **Versioning**: `package.json` - Single source of truth
@@ -0,0 +1,200 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # cfn-changelog-management/add-changelog-entry.sh
5
+ # Adds sparse, structured entries to readme/CHANGELOG.md
6
+
7
+ # Default values
8
+ TYPE=""
9
+ SUMMARY=""
10
+ IMPACT=""
11
+ VERSION=""
12
+ ISSUE=""
13
+ FILES=""
14
+ MIGRATION=""
15
+
16
+ # Parse arguments
17
+ while [[ $# -gt 0 ]]; do
18
+ case $1 in
19
+ --type)
20
+ TYPE="$2"
21
+ shift 2
22
+ ;;
23
+ --summary)
24
+ SUMMARY="$2"
25
+ shift 2
26
+ ;;
27
+ --impact)
28
+ IMPACT="$2"
29
+ shift 2
30
+ ;;
31
+ --version)
32
+ VERSION="$2"
33
+ shift 2
34
+ ;;
35
+ --issue)
36
+ ISSUE="$2"
37
+ shift 2
38
+ ;;
39
+ --files)
40
+ FILES="$2"
41
+ shift 2
42
+ ;;
43
+ --migration)
44
+ MIGRATION="$2"
45
+ shift 2
46
+ ;;
47
+ *)
48
+ echo "Unknown argument: $1" >&2
49
+ exit 1
50
+ ;;
51
+ esac
52
+ done
53
+
54
+ # Validation
55
+ if [[ -z "$TYPE" ]]; then
56
+ echo "Error: --type is required" >&2
57
+ echo "Valid types: feature, bugfix, breaking, dependency, architecture, performance, security" >&2
58
+ exit 1
59
+ fi
60
+
61
+ if [[ -z "$SUMMARY" ]]; then
62
+ echo "Error: --summary is required" >&2
63
+ exit 1
64
+ fi
65
+
66
+ if [[ -z "$IMPACT" ]]; then
67
+ echo "Error: --impact is required" >&2
68
+ exit 1
69
+ fi
70
+
71
+ # Validate type
72
+ VALID_TYPES="feature|bugfix|breaking|dependency|architecture|performance|security"
73
+ if [[ ! "$TYPE" =~ ^($VALID_TYPES)$ ]]; then
74
+ echo "Error: --type must be one of: feature, bugfix, breaking, dependency, architecture, performance, security (got: $TYPE)" >&2
75
+ exit 1
76
+ fi
77
+
78
+ # Validate summary length
79
+ SUMMARY_LENGTH=${#SUMMARY}
80
+ if (( SUMMARY_LENGTH < 10 )); then
81
+ echo "Error: --summary must be at least 10 characters (got $SUMMARY_LENGTH)" >&2
82
+ exit 1
83
+ fi
84
+
85
+ if (( SUMMARY_LENGTH > 100 )); then
86
+ echo "Error: --summary must be at most 100 characters (got $SUMMARY_LENGTH)" >&2
87
+ exit 1
88
+ fi
89
+
90
+ # Validate file limit
91
+ if [[ -n "$FILES" ]]; then
92
+ FILE_COUNT=$(echo "$FILES" | tr ',' '\n' | wc -l)
93
+ if (( FILE_COUNT > 5 )); then
94
+ echo "Error: --files can contain at most 5 files (got $FILE_COUNT)" >&2
95
+ exit 1
96
+ fi
97
+ fi
98
+
99
+ # Path to changelog
100
+ CHANGELOG_FILE="readme/CHANGELOG.md"
101
+ PROJECT_ROOT="/mnt/c/Users/masha/Documents/claude-flow-novice"
102
+ CHANGELOG_PATH="$PROJECT_ROOT/$CHANGELOG_FILE"
103
+
104
+ # Check if changelog exists
105
+ if [[ ! -f "$CHANGELOG_PATH" ]]; then
106
+ echo "Error: Changelog not found at $CHANGELOG_PATH" >&2
107
+ echo "Expected format: readme/CHANGELOG.md" >&2
108
+ exit 1
109
+ fi
110
+
111
+ # Map type to section header
112
+ case "$TYPE" in
113
+ feature)
114
+ SECTION="### Features"
115
+ ;;
116
+ bugfix)
117
+ SECTION="### Bug Fixes"
118
+ ;;
119
+ breaking)
120
+ SECTION="### Breaking Changes"
121
+ ;;
122
+ dependency)
123
+ SECTION="### Dependencies"
124
+ ;;
125
+ architecture)
126
+ SECTION="### Architecture"
127
+ ;;
128
+ performance)
129
+ SECTION="### Performance"
130
+ ;;
131
+ security)
132
+ SECTION="### Security"
133
+ ;;
134
+ esac
135
+
136
+ # Current date
137
+ CURRENT_DATE=$(date +%Y-%m-%d)
138
+
139
+ # Build entry
140
+ ENTRY="- $SUMMARY ($CURRENT_DATE)"
141
+ ENTRY="$ENTRY\n - Impact: $IMPACT"
142
+
143
+ if [[ -n "$FILES" ]]; then
144
+ ENTRY="$ENTRY\n - Files: \`$FILES\`"
145
+ fi
146
+
147
+ if [[ -n "$ISSUE" ]]; then
148
+ ENTRY="$ENTRY\n - Issue: $ISSUE"
149
+ fi
150
+
151
+ if [[ -n "$MIGRATION" ]]; then
152
+ ENTRY="$ENTRY\n - Migration: $MIGRATION"
153
+ fi
154
+
155
+ # Find [Unreleased] section and appropriate subsection
156
+ # Insert entry after section header
157
+
158
+ # Check if [Unreleased] section exists
159
+ if ! grep -q "## \[Unreleased\]" "$CHANGELOG_PATH"; then
160
+ echo "Error: [Unreleased] section not found in changelog" >&2
161
+ echo "Expected format:" >&2
162
+ echo "## [Unreleased]" >&2
163
+ echo "" >&2
164
+ echo "### Features" >&2
165
+ exit 1
166
+ fi
167
+
168
+ # Check if section exists within [Unreleased]
169
+ if ! awk '/## \[Unreleased\]/,/^---$/ { if (/'"$SECTION"'/) found=1 } END { exit !found }' "$CHANGELOG_PATH"; then
170
+ echo "Error: $SECTION not found within [Unreleased] section" >&2
171
+ exit 1
172
+ fi
173
+
174
+ # Insert entry after section header (first blank line or entry)
175
+ awk -v section="$SECTION" -v entry="$ENTRY" '
176
+ # Track if we are in [Unreleased] section
177
+ /## \[Unreleased\]/ { in_unreleased=1 }
178
+ /^## \[/ && !/## \[Unreleased\]/ { in_unreleased=0 }
179
+
180
+ # When we find the target section within [Unreleased]
181
+ in_unreleased && $0 ~ section {
182
+ print
183
+ getline # Read next line
184
+ print # Print it (usually blank line)
185
+ print entry
186
+ next
187
+ }
188
+ {print}
189
+ ' "$CHANGELOG_PATH" > "${CHANGELOG_PATH}.tmp"
190
+
191
+ mv "${CHANGELOG_PATH}.tmp" "$CHANGELOG_PATH"
192
+
193
+ echo "✅ Changelog entry added successfully"
194
+ echo " Type: $TYPE"
195
+ echo " Summary: $SUMMARY"
196
+ echo " Section: $SECTION"
197
+ echo " Location: $CHANGELOG_FILE"
198
+
199
+ # Output path for scripting
200
+ echo "$CHANGELOG_PATH"
@@ -1,118 +1,100 @@
1
- "use strict";
2
- var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
3
- function adopt(value) {
4
- return value instanceof P ? value : new P(function(resolve) {
5
- resolve(value);
6
- });
1
+ import * as fs from "fs/promises";
2
+ import * as path from "path";
3
+ import Ajv from "ajv";
4
+ import * as lodash from "lodash";
5
+ let ConfigManager = class ConfigManager {
6
+ static _instance = null;
7
+ configPath;
8
+ schemaPath;
9
+ ajv;
10
+ constructor(){
11
+ this.configPath = path.join(process.env.HOME || "", ".claude-flow-config.json");
12
+ this.schemaPath = path.join(__dirname, "../../.claude/skills/config-management/config.json");
13
+ this.ajv = new Ajv();
7
14
  }
8
- return new (P || (P = Promise))(function(resolve, reject) {
9
- function fulfilled(value) {
10
- try {
11
- step(generator.next(value));
12
- } catch (e) {
13
- reject(e);
14
- }
15
+ static getInstance() {
16
+ if (!ConfigManager._instance) {
17
+ ConfigManager._instance = new ConfigManager();
15
18
  }
16
- function rejected(value) {
17
- try {
18
- step(generator["throw"](value));
19
- } catch (e) {
20
- reject(e);
21
- }
19
+ return ConfigManager._instance;
20
+ }
21
+ async readConfig() {
22
+ try {
23
+ const configContent = await fs.readFile(this.configPath, "utf-8");
24
+ return JSON.parse(configContent);
25
+ } catch (error) {
26
+ // If config doesn't exist, create from schema
27
+ return this.resetToDefaults();
22
28
  }
23
- function step(result) {
24
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
29
+ }
30
+ async writeConfig(config) {
31
+ const schemaContent = await fs.readFile(this.schemaPath, "utf-8");
32
+ const schema = JSON.parse(schemaContent);
33
+ const validate = this.ajv.compile(schema);
34
+ if (!validate(config)) {
35
+ throw new Error("Invalid configuration: " + this.ajv.errorsText(validate.errors));
25
36
  }
26
- step((generator = generator.apply(thisArg, _arguments || [])).next());
27
- });
28
- };
29
- var __generator = this && this.__generator || function(thisArg, body) {
30
- var _ = {
31
- label: 0,
32
- sent: function() {
33
- if (t[0] & 1) throw t[1];
34
- return t[1];
35
- },
36
- trys: [],
37
- ops: []
38
- }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
39
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
40
- return this;
41
- }), g;
42
- function verb(n) {
43
- return function(v) {
44
- return step([
45
- n,
46
- v
47
- ]);
48
- };
37
+ await fs.writeFile(this.configPath, JSON.stringify(config, null, 2), "utf-8");
49
38
  }
50
- function step(op) {
51
- if (f) throw new TypeError("Generator is already executing.");
52
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
53
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
54
- if (y = 0, t) op = [
55
- op[0] & 2,
56
- t.value
57
- ];
58
- switch(op[0]){
59
- case 0:
60
- case 1:
61
- t = op;
62
- break;
63
- case 4:
64
- _.label++;
65
- return {
66
- value: op[1],
67
- done: false
68
- };
69
- case 5:
70
- _.label++;
71
- y = op[1];
72
- op = [
73
- 0
74
- ];
75
- continue;
76
- case 7:
77
- op = _.ops.pop();
78
- _.trys.pop();
79
- continue;
80
- default:
81
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
82
- _ = 0;
83
- continue;
84
- }
85
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
86
- _.label = op[1];
87
- break;
88
- }
89
- if (op[0] === 6 && _.label < t[1]) {
90
- _.label = t[1];
91
- t = op;
92
- break;
93
- }
94
- if (t && _.label < t[2]) {
95
- _.label = t[2];
96
- _.ops.push(op);
97
- break;
98
- }
99
- if (t[2]) _.ops.pop();
100
- _.trys.pop();
101
- continue;
102
- }
103
- op = body.call(thisArg, _);
104
- } catch (e) {
105
- op = [
106
- 6,
107
- e
108
- ];
109
- y = 0;
110
- } finally{
111
- f = t = 0;
39
+ async getValue(keyPath) {
40
+ const config = await this.readConfig();
41
+ const value = lodash.get(config, keyPath);
42
+ if (value === undefined) {
43
+ // Check if it's a custom key path not in the schema
44
+ const customConfig = await this.readCustomConfig();
45
+ return lodash.get(customConfig, keyPath);
112
46
  }
113
- if (op[0] & 5) throw op[1];
114
- return {
115
- value: op[0] ? op[1] : void 0,
47
+ return value;
48
+ }
49
+ async readCustomConfig() {
50
+ try {
51
+ const customConfigPath = path.join(process.env.HOME || "", ".claude-flow-custom-config.json");
52
+ const customConfigContent = await fs.readFile(customConfigPath, "utf-8");
53
+ return JSON.parse(customConfigContent);
54
+ } catch (error) {
55
+ // If custom config doesn't exist or can't be read, return empty object
56
+ return {};
57
+ }
58
+ }
59
+ async set(key, value) {
60
+ const config = await this.readConfig();
61
+ // Type assertion to handle full object
62
+ if (typeof value === "object" && value !== null) {
63
+ config[key] = value;
64
+ } else {
65
+ throw new Error("Invalid configuration value");
66
+ }
67
+ await this.writeConfig(config);
68
+ }
69
+ async getAll() {
70
+ return this.readConfig();
71
+ }
72
+ async resetToDefaults() {
73
+ const schemaContent = await fs.readFile(this.schemaPath, "utf-8");
74
+ const schema = JSON.parse(schemaContent);
75
+ // Extract default values from the schema
76
+ const defaultConfig = {
77
+ redis: {
78
+ host: schema.properties.redis.properties.host.default,
79
+ port: schema.properties.redis.properties.port.default
80
+ },
81
+ agent: {
82
+ default_strategy: schema.properties.agent.properties.default_strategy.default,
83
+ max_concurrent_agents: schema.properties.agent.properties.max_concurrent_agents.default,
84
+ log_level: schema.properties.agent.properties.log_level.default
85
+ },
86
+ security: {
87
+ enabled: schema.properties.security.properties.enabled.default,
88
+ max_retry_attempts: schema.properties.security.properties.max_retry_attempts.default
89
+ }
90
+ };
91
+ await this.writeConfig(defaultConfig);
92
+ return defaultConfig;
93
+ }
94
+ };
95
+ export default ConfigManager;
96
+
97
+ //# sourceMappingURL=config-manager.js.mapop[1] : void 0,
116
98
  done: true
117
99
  };
118
100
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow-novice",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "AI agent orchestration framework with namespace-isolated skills, agents, and CFN Loop validation. Safe installation with ~0.01% collision risk.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -26,6 +26,7 @@
26
26
  ".claude/skills/cfn-agent-spawning/",
27
27
  ".claude/skills/cfn-analytics/",
28
28
  ".claude/skills/cfn-backlog-management/",
29
+ ".claude/skills/cfn-changelog-management/",
29
30
  ".claude/skills/cfn-checkpoint-state/",
30
31
  ".claude/skills/cfn-config-management/",
31
32
  ".claude/skills/cfn-event-bus/",