create-universal-ai-context 2.4.0 → 2.6.0-final
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/LICENSE +21 -21
- package/README.md +331 -294
- package/bin/create-ai-context.js +1507 -764
- package/lib/adapters/aider.js +131 -131
- package/lib/adapters/antigravity.js +205 -205
- package/lib/adapters/claude.js +397 -397
- package/lib/adapters/cline.js +125 -125
- package/lib/adapters/continue.js +138 -138
- package/lib/adapters/copilot.js +131 -131
- package/lib/adapters/index.js +78 -78
- package/lib/adapters/windsurf.js +138 -138
- package/lib/ai-context-generator.js +234 -234
- package/lib/ai-orchestrator.js +432 -432
- package/lib/call-tracer.js +444 -444
- package/lib/content-preservation.js +243 -243
- package/lib/cross-tool-sync/file-watcher.js +274 -274
- package/lib/cross-tool-sync/index.js +41 -40
- package/lib/cross-tool-sync/sync-manager.js +540 -512
- package/lib/cross-tool-sync/sync-service.js +297 -297
- package/lib/detector.js +726 -726
- package/lib/doc-discovery.js +741 -741
- package/lib/drift-checker.js +920 -920
- package/lib/environment-detector.js +239 -239
- package/lib/index.js +399 -399
- package/lib/install-hooks.js +82 -82
- package/lib/installer.js +419 -419
- package/lib/migrate.js +328 -328
- package/lib/placeholder.js +632 -632
- package/lib/prompts.js +341 -341
- package/lib/smart-merge.js +540 -540
- package/lib/spinner.js +60 -60
- package/lib/static-analyzer.js +729 -729
- package/lib/template-coordination.js +148 -148
- package/lib/template-populator.js +843 -843
- package/lib/template-renderer.js +392 -392
- package/lib/utils/fs-wrapper.js +79 -79
- package/lib/utils/path-utils.js +60 -60
- package/lib/validate.js +155 -155
- package/package.json +1 -1
- package/templates/AI_CONTEXT.md.template +245 -245
- package/templates/base/README.md +260 -257
- package/templates/base/RPI_WORKFLOW_PLAN.md +325 -320
- package/templates/base/agents/api-developer.md +76 -76
- package/templates/base/agents/context-engineer.md +525 -525
- package/templates/base/agents/core-architect.md +76 -76
- package/templates/base/agents/database-ops.md +76 -76
- package/templates/base/agents/deployment-ops.md +76 -76
- package/templates/base/agents/integration-hub.md +76 -76
- package/templates/base/analytics/README.md +114 -114
- package/templates/base/automation/config.json +58 -58
- package/templates/base/automation/generators/code-mapper.js +308 -308
- package/templates/base/automation/generators/index-builder.js +321 -321
- package/templates/base/automation/hooks/post-commit.sh +83 -83
- package/templates/base/automation/hooks/pre-commit.sh +103 -103
- package/templates/base/ci-templates/README.md +108 -108
- package/templates/base/ci-templates/github-actions/context-check.yml +144 -144
- package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -105
- package/templates/base/commands/analytics.md +238 -238
- package/templates/base/commands/auto-sync.md +172 -172
- package/templates/base/commands/collab.md +194 -194
- package/templates/base/commands/context-optimize.md +226 -0
- package/templates/base/commands/help.md +485 -450
- package/templates/base/commands/rpi-implement.md +164 -115
- package/templates/base/commands/rpi-plan.md +147 -93
- package/templates/base/commands/rpi-research.md +145 -88
- package/templates/base/commands/session-resume.md +144 -144
- package/templates/base/commands/session-save.md +112 -112
- package/templates/base/commands/validate-all.md +77 -77
- package/templates/base/commands/verify-docs-current.md +86 -86
- package/templates/base/config/base.json +57 -57
- package/templates/base/config/environments/development.json +13 -13
- package/templates/base/config/environments/production.json +17 -17
- package/templates/base/config/environments/staging.json +13 -13
- package/templates/base/config/local.json.example +21 -21
- package/templates/base/context/.meta/generated-at.json +18 -18
- package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -156
- package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -94
- package/templates/base/context/FILE_OWNERSHIP.md +57 -57
- package/templates/base/context/INTEGRATION_POINTS.md +92 -92
- package/templates/base/context/KNOWN_GOTCHAS.md +195 -195
- package/templates/base/context/TESTING_MAP.md +95 -95
- package/templates/base/context/WORKFLOW_INDEX.md +129 -129
- package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -294
- package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -255
- package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -44
- package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -38
- package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -39
- package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -39
- package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -38
- package/templates/base/knowledge/README.md +98 -98
- package/templates/base/knowledge/sessions/README.md +88 -88
- package/templates/base/knowledge/sessions/TEMPLATE.md +150 -150
- package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -144
- package/templates/base/knowledge/shared/decisions/README.md +49 -49
- package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -123
- package/templates/base/knowledge/shared/patterns/README.md +62 -62
- package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -120
- package/templates/base/plans/PLAN_TEMPLATE.md +316 -250
- package/templates/base/research/RESEARCH_TEMPLATE.md +245 -153
- package/templates/base/schemas/agent.schema.json +141 -141
- package/templates/base/schemas/anchors.schema.json +54 -54
- package/templates/base/schemas/automation.schema.json +93 -93
- package/templates/base/schemas/command.schema.json +134 -134
- package/templates/base/schemas/hashes.schema.json +40 -40
- package/templates/base/schemas/manifest.schema.json +117 -117
- package/templates/base/schemas/plan.schema.json +136 -136
- package/templates/base/schemas/research.schema.json +115 -115
- package/templates/base/schemas/roles.schema.json +34 -34
- package/templates/base/schemas/session.schema.json +77 -77
- package/templates/base/schemas/settings.schema.json +244 -244
- package/templates/base/schemas/staleness.schema.json +53 -53
- package/templates/base/schemas/team-config.schema.json +42 -42
- package/templates/base/schemas/workflow.schema.json +126 -126
- package/templates/base/session/checkpoints/.gitkeep +2 -2
- package/templates/base/session/current/state.json +20 -20
- package/templates/base/session/history/.gitkeep +2 -2
- package/templates/base/settings.json +3 -3
- package/templates/base/standards/COMPATIBILITY.md +219 -219
- package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -280
- package/templates/base/standards/QUALITY_CHECKLIST.md +211 -211
- package/templates/base/standards/README.md +66 -66
- package/templates/base/sync/anchors.json +6 -6
- package/templates/base/sync/hashes.json +6 -6
- package/templates/base/sync/staleness.json +10 -10
- package/templates/base/team/README.md +168 -168
- package/templates/base/team/config.json +79 -79
- package/templates/base/team/roles.json +145 -145
- package/templates/base/tools/bin/claude-context.js +151 -151
- package/templates/base/tools/lib/anchor-resolver.js +276 -276
- package/templates/base/tools/lib/config-loader.js +363 -363
- package/templates/base/tools/lib/detector.js +350 -350
- package/templates/base/tools/lib/diagnose.js +206 -206
- package/templates/base/tools/lib/drift-detector.js +373 -373
- package/templates/base/tools/lib/errors.js +199 -199
- package/templates/base/tools/lib/index.js +36 -36
- package/templates/base/tools/lib/init.js +192 -192
- package/templates/base/tools/lib/logger.js +230 -230
- package/templates/base/tools/lib/placeholder.js +201 -201
- package/templates/base/tools/lib/session-manager.js +354 -354
- package/templates/base/tools/lib/validate.js +521 -521
- package/templates/base/tools/package.json +49 -49
- package/templates/handlebars/aider-config.hbs +146 -80
- package/templates/handlebars/antigravity.hbs +377 -377
- package/templates/handlebars/claude.hbs +183 -183
- package/templates/handlebars/cline.hbs +62 -62
- package/templates/handlebars/continue-config.hbs +116 -116
- package/templates/handlebars/copilot.hbs +130 -130
- package/templates/handlebars/partials/gotcha-list.hbs +11 -11
- package/templates/handlebars/partials/header.hbs +3 -3
- package/templates/handlebars/partials/workflow-summary.hbs +16 -16
- package/templates/handlebars/windsurf-rules.hbs +69 -69
- package/templates/hooks/post-commit.hbs +28 -29
- package/templates/hooks/pre-commit.hbs +46 -46
|
@@ -1,144 +1,144 @@
|
|
|
1
|
-
# Claude Context Engineering - Context Budget Check
|
|
2
|
-
#
|
|
3
|
-
# This workflow monitors context budget and documentation health.
|
|
4
|
-
# Copy this file to .github/workflows/context-check.yml to enable.
|
|
5
|
-
#
|
|
6
|
-
# Runs on:
|
|
7
|
-
# - Push to main/master branches
|
|
8
|
-
# - Weekly schedule
|
|
9
|
-
# - Manual trigger
|
|
10
|
-
|
|
11
|
-
name: Context Budget Check
|
|
12
|
-
|
|
13
|
-
on:
|
|
14
|
-
push:
|
|
15
|
-
branches:
|
|
16
|
-
- main
|
|
17
|
-
- master
|
|
18
|
-
paths:
|
|
19
|
-
- '.ai-context/**'
|
|
20
|
-
schedule:
|
|
21
|
-
# Run weekly on Monday at 9am UTC
|
|
22
|
-
- cron: '0 9 * * 1'
|
|
23
|
-
workflow_dispatch:
|
|
24
|
-
|
|
25
|
-
jobs:
|
|
26
|
-
context-health:
|
|
27
|
-
name: Check Context Engineering Health
|
|
28
|
-
runs-on: ubuntu-latest
|
|
29
|
-
|
|
30
|
-
steps:
|
|
31
|
-
- name: Checkout repository
|
|
32
|
-
uses: actions/checkout@v4
|
|
33
|
-
|
|
34
|
-
- name: Setup Node.js
|
|
35
|
-
uses: actions/setup-node@v4
|
|
36
|
-
with:
|
|
37
|
-
node-version: '18'
|
|
38
|
-
cache: 'npm'
|
|
39
|
-
cache-dependency-path: '.ai-context/tools/package-lock.json'
|
|
40
|
-
|
|
41
|
-
- name: Install CLI tools
|
|
42
|
-
run: |
|
|
43
|
-
cd .ai-context/tools
|
|
44
|
-
npm ci
|
|
45
|
-
|
|
46
|
-
- name: Run Full Diagnostics
|
|
47
|
-
id: diagnose
|
|
48
|
-
run: |
|
|
49
|
-
echo "🔬 Running diagnostics..."
|
|
50
|
-
npx .ai-context/tools/bin/claude-context.js diagnose --verbose > diagnostics.txt 2>&1
|
|
51
|
-
cat diagnostics.txt
|
|
52
|
-
continue-on-error: true
|
|
53
|
-
|
|
54
|
-
- name: Calculate Documentation Metrics
|
|
55
|
-
run: |
|
|
56
|
-
echo "📊 Calculating metrics..."
|
|
57
|
-
|
|
58
|
-
# Count workflow files
|
|
59
|
-
WORKFLOW_COUNT=$(find .ai-context/context/workflows -name "*.md" 2>/dev/null | wc -l || echo "0")
|
|
60
|
-
echo "Workflow files: $WORKFLOW_COUNT"
|
|
61
|
-
|
|
62
|
-
# Count agent files
|
|
63
|
-
AGENT_COUNT=$(find .ai-context/agents -name "*.md" 2>/dev/null | wc -l || echo "0")
|
|
64
|
-
echo "Agent files: $AGENT_COUNT"
|
|
65
|
-
|
|
66
|
-
# Count command files
|
|
67
|
-
COMMAND_COUNT=$(find .ai-context/commands -name "*.md" 2>/dev/null | wc -l || echo "0")
|
|
68
|
-
echo "Command files: $COMMAND_COUNT"
|
|
69
|
-
|
|
70
|
-
# Estimate total documentation tokens (rough: 1 token ≈ 4 chars)
|
|
71
|
-
TOTAL_CHARS=$(find .claude -name "*.md" -exec cat {} \; 2>/dev/null | wc -c || echo "0")
|
|
72
|
-
ESTIMATED_TOKENS=$((TOTAL_CHARS / 4))
|
|
73
|
-
echo "Estimated documentation tokens: $ESTIMATED_TOKENS"
|
|
74
|
-
|
|
75
|
-
# Calculate as percentage of budget
|
|
76
|
-
MAX_TOKENS=200000
|
|
77
|
-
PERCENTAGE=$((ESTIMATED_TOKENS * 100 / MAX_TOKENS))
|
|
78
|
-
echo "Context budget usage: ${PERCENTAGE}%"
|
|
79
|
-
|
|
80
|
-
# Save metrics
|
|
81
|
-
cat > metrics.json << EOF
|
|
82
|
-
{
|
|
83
|
-
"workflow_count": $WORKFLOW_COUNT,
|
|
84
|
-
"agent_count": $AGENT_COUNT,
|
|
85
|
-
"command_count": $COMMAND_COUNT,
|
|
86
|
-
"estimated_tokens": $ESTIMATED_TOKENS,
|
|
87
|
-
"budget_percentage": $PERCENTAGE,
|
|
88
|
-
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
89
|
-
}
|
|
90
|
-
EOF
|
|
91
|
-
|
|
92
|
-
cat metrics.json
|
|
93
|
-
|
|
94
|
-
- name: Check Budget Threshold
|
|
95
|
-
run: |
|
|
96
|
-
PERCENTAGE=$(jq '.budget_percentage' metrics.json)
|
|
97
|
-
echo "Current usage: ${PERCENTAGE}%"
|
|
98
|
-
|
|
99
|
-
if [ "$PERCENTAGE" -gt 60 ]; then
|
|
100
|
-
echo "⚠️ WARNING: Documentation exceeds 60% of context budget!"
|
|
101
|
-
echo "Consider compacting or splitting documentation."
|
|
102
|
-
exit 1
|
|
103
|
-
elif [ "$PERCENTAGE" -gt 40 ]; then
|
|
104
|
-
echo "📊 Documentation is at ${PERCENTAGE}% - approaching target limit"
|
|
105
|
-
else
|
|
106
|
-
echo "✅ Documentation is within healthy range (${PERCENTAGE}%)"
|
|
107
|
-
fi
|
|
108
|
-
|
|
109
|
-
- name: Run Validation Suite
|
|
110
|
-
run: |
|
|
111
|
-
echo "🔍 Running validation..."
|
|
112
|
-
npx .ai-context/tools/bin/claude-context.js validate --all > validation.txt 2>&1 || true
|
|
113
|
-
cat validation.txt
|
|
114
|
-
|
|
115
|
-
- name: Upload Metrics
|
|
116
|
-
uses: actions/upload-artifact@v4
|
|
117
|
-
with:
|
|
118
|
-
name: context-metrics
|
|
119
|
-
path: |
|
|
120
|
-
metrics.json
|
|
121
|
-
diagnostics.txt
|
|
122
|
-
validation.txt
|
|
123
|
-
retention-days: 30
|
|
124
|
-
|
|
125
|
-
- name: Create Issue on Failure
|
|
126
|
-
if: failure() && github.event_name == 'schedule'
|
|
127
|
-
uses: actions/github-script@v7
|
|
128
|
-
with:
|
|
129
|
-
script: |
|
|
130
|
-
const fs = require('fs');
|
|
131
|
-
let metrics = {};
|
|
132
|
-
try {
|
|
133
|
-
metrics = JSON.parse(fs.readFileSync('metrics.json', 'utf8'));
|
|
134
|
-
} catch (e) {
|
|
135
|
-
metrics = { error: 'Could not read metrics' };
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
github.rest.issues.create({
|
|
139
|
-
owner: context.repo.owner,
|
|
140
|
-
repo: context.repo.repo,
|
|
141
|
-
title: '⚠️ Claude Context Engineering Health Check Failed',
|
|
142
|
-
body: `## Weekly Health Check Failed\n\n**Metrics:**\n\`\`\`json\n${JSON.stringify(metrics, null, 2)}\n\`\`\`\n\n**Action Required:**\n- Review documentation health\n- Run \`npx claude-context diagnose\` locally\n- Consider documentation compaction if over budget\n\n---\n*Generated by Claude Context Engineering CI*`,
|
|
143
|
-
labels: ['documentation', 'maintenance']
|
|
144
|
-
});
|
|
1
|
+
# Claude Context Engineering - Context Budget Check
|
|
2
|
+
#
|
|
3
|
+
# This workflow monitors context budget and documentation health.
|
|
4
|
+
# Copy this file to .github/workflows/context-check.yml to enable.
|
|
5
|
+
#
|
|
6
|
+
# Runs on:
|
|
7
|
+
# - Push to main/master branches
|
|
8
|
+
# - Weekly schedule
|
|
9
|
+
# - Manual trigger
|
|
10
|
+
|
|
11
|
+
name: Context Budget Check
|
|
12
|
+
|
|
13
|
+
on:
|
|
14
|
+
push:
|
|
15
|
+
branches:
|
|
16
|
+
- main
|
|
17
|
+
- master
|
|
18
|
+
paths:
|
|
19
|
+
- '.ai-context/**'
|
|
20
|
+
schedule:
|
|
21
|
+
# Run weekly on Monday at 9am UTC
|
|
22
|
+
- cron: '0 9 * * 1'
|
|
23
|
+
workflow_dispatch:
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
context-health:
|
|
27
|
+
name: Check Context Engineering Health
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout repository
|
|
32
|
+
uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- name: Setup Node.js
|
|
35
|
+
uses: actions/setup-node@v4
|
|
36
|
+
with:
|
|
37
|
+
node-version: '18'
|
|
38
|
+
cache: 'npm'
|
|
39
|
+
cache-dependency-path: '.ai-context/tools/package-lock.json'
|
|
40
|
+
|
|
41
|
+
- name: Install CLI tools
|
|
42
|
+
run: |
|
|
43
|
+
cd .ai-context/tools
|
|
44
|
+
npm ci
|
|
45
|
+
|
|
46
|
+
- name: Run Full Diagnostics
|
|
47
|
+
id: diagnose
|
|
48
|
+
run: |
|
|
49
|
+
echo "🔬 Running diagnostics..."
|
|
50
|
+
npx .ai-context/tools/bin/claude-context.js diagnose --verbose > diagnostics.txt 2>&1
|
|
51
|
+
cat diagnostics.txt
|
|
52
|
+
continue-on-error: true
|
|
53
|
+
|
|
54
|
+
- name: Calculate Documentation Metrics
|
|
55
|
+
run: |
|
|
56
|
+
echo "📊 Calculating metrics..."
|
|
57
|
+
|
|
58
|
+
# Count workflow files
|
|
59
|
+
WORKFLOW_COUNT=$(find .ai-context/context/workflows -name "*.md" 2>/dev/null | wc -l || echo "0")
|
|
60
|
+
echo "Workflow files: $WORKFLOW_COUNT"
|
|
61
|
+
|
|
62
|
+
# Count agent files
|
|
63
|
+
AGENT_COUNT=$(find .ai-context/agents -name "*.md" 2>/dev/null | wc -l || echo "0")
|
|
64
|
+
echo "Agent files: $AGENT_COUNT"
|
|
65
|
+
|
|
66
|
+
# Count command files
|
|
67
|
+
COMMAND_COUNT=$(find .ai-context/commands -name "*.md" 2>/dev/null | wc -l || echo "0")
|
|
68
|
+
echo "Command files: $COMMAND_COUNT"
|
|
69
|
+
|
|
70
|
+
# Estimate total documentation tokens (rough: 1 token ≈ 4 chars)
|
|
71
|
+
TOTAL_CHARS=$(find .claude -name "*.md" -exec cat {} \; 2>/dev/null | wc -c || echo "0")
|
|
72
|
+
ESTIMATED_TOKENS=$((TOTAL_CHARS / 4))
|
|
73
|
+
echo "Estimated documentation tokens: $ESTIMATED_TOKENS"
|
|
74
|
+
|
|
75
|
+
# Calculate as percentage of budget
|
|
76
|
+
MAX_TOKENS=200000
|
|
77
|
+
PERCENTAGE=$((ESTIMATED_TOKENS * 100 / MAX_TOKENS))
|
|
78
|
+
echo "Context budget usage: ${PERCENTAGE}%"
|
|
79
|
+
|
|
80
|
+
# Save metrics
|
|
81
|
+
cat > metrics.json << EOF
|
|
82
|
+
{
|
|
83
|
+
"workflow_count": $WORKFLOW_COUNT,
|
|
84
|
+
"agent_count": $AGENT_COUNT,
|
|
85
|
+
"command_count": $COMMAND_COUNT,
|
|
86
|
+
"estimated_tokens": $ESTIMATED_TOKENS,
|
|
87
|
+
"budget_percentage": $PERCENTAGE,
|
|
88
|
+
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
89
|
+
}
|
|
90
|
+
EOF
|
|
91
|
+
|
|
92
|
+
cat metrics.json
|
|
93
|
+
|
|
94
|
+
- name: Check Budget Threshold
|
|
95
|
+
run: |
|
|
96
|
+
PERCENTAGE=$(jq '.budget_percentage' metrics.json)
|
|
97
|
+
echo "Current usage: ${PERCENTAGE}%"
|
|
98
|
+
|
|
99
|
+
if [ "$PERCENTAGE" -gt 60 ]; then
|
|
100
|
+
echo "⚠️ WARNING: Documentation exceeds 60% of context budget!"
|
|
101
|
+
echo "Consider compacting or splitting documentation."
|
|
102
|
+
exit 1
|
|
103
|
+
elif [ "$PERCENTAGE" -gt 40 ]; then
|
|
104
|
+
echo "📊 Documentation is at ${PERCENTAGE}% - approaching target limit"
|
|
105
|
+
else
|
|
106
|
+
echo "✅ Documentation is within healthy range (${PERCENTAGE}%)"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
- name: Run Validation Suite
|
|
110
|
+
run: |
|
|
111
|
+
echo "🔍 Running validation..."
|
|
112
|
+
npx .ai-context/tools/bin/claude-context.js validate --all > validation.txt 2>&1 || true
|
|
113
|
+
cat validation.txt
|
|
114
|
+
|
|
115
|
+
- name: Upload Metrics
|
|
116
|
+
uses: actions/upload-artifact@v4
|
|
117
|
+
with:
|
|
118
|
+
name: context-metrics
|
|
119
|
+
path: |
|
|
120
|
+
metrics.json
|
|
121
|
+
diagnostics.txt
|
|
122
|
+
validation.txt
|
|
123
|
+
retention-days: 30
|
|
124
|
+
|
|
125
|
+
- name: Create Issue on Failure
|
|
126
|
+
if: failure() && github.event_name == 'schedule'
|
|
127
|
+
uses: actions/github-script@v7
|
|
128
|
+
with:
|
|
129
|
+
script: |
|
|
130
|
+
const fs = require('fs');
|
|
131
|
+
let metrics = {};
|
|
132
|
+
try {
|
|
133
|
+
metrics = JSON.parse(fs.readFileSync('metrics.json', 'utf8'));
|
|
134
|
+
} catch (e) {
|
|
135
|
+
metrics = { error: 'Could not read metrics' };
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
github.rest.issues.create({
|
|
139
|
+
owner: context.repo.owner,
|
|
140
|
+
repo: context.repo.repo,
|
|
141
|
+
title: '⚠️ Claude Context Engineering Health Check Failed',
|
|
142
|
+
body: `## Weekly Health Check Failed\n\n**Metrics:**\n\`\`\`json\n${JSON.stringify(metrics, null, 2)}\n\`\`\`\n\n**Action Required:**\n- Review documentation health\n- Run \`npx claude-context diagnose\` locally\n- Consider documentation compaction if over budget\n\n---\n*Generated by Claude Context Engineering CI*`,
|
|
143
|
+
labels: ['documentation', 'maintenance']
|
|
144
|
+
});
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
# Claude Context Engineering - Documentation Validation
|
|
2
|
-
#
|
|
3
|
-
# This workflow validates that documentation is accurate and up-to-date.
|
|
4
|
-
# Copy this file to .github/workflows/validate-docs.yml to enable.
|
|
5
|
-
#
|
|
6
|
-
# Runs on:
|
|
7
|
-
# - Pull requests that modify .ai-context/ or source files
|
|
8
|
-
# - Manual trigger
|
|
9
|
-
|
|
10
|
-
name: Validate Documentation
|
|
11
|
-
|
|
12
|
-
on:
|
|
13
|
-
pull_request:
|
|
14
|
-
paths:
|
|
15
|
-
- '.ai-context/**'
|
|
16
|
-
- 'src/**'
|
|
17
|
-
- 'lib/**'
|
|
18
|
-
- 'app/**'
|
|
19
|
-
workflow_dispatch:
|
|
20
|
-
|
|
21
|
-
jobs:
|
|
22
|
-
validate:
|
|
23
|
-
name: Validate Claude Context Documentation
|
|
24
|
-
runs-on: ubuntu-latest
|
|
25
|
-
|
|
26
|
-
steps:
|
|
27
|
-
- name: Checkout repository
|
|
28
|
-
uses: actions/checkout@v4
|
|
29
|
-
|
|
30
|
-
- name: Setup Node.js
|
|
31
|
-
uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: '18'
|
|
34
|
-
cache: 'npm'
|
|
35
|
-
cache-dependency-path: '.ai-context/tools/package-lock.json'
|
|
36
|
-
|
|
37
|
-
- name: Install CLI tools
|
|
38
|
-
run: |
|
|
39
|
-
cd .ai-context/tools
|
|
40
|
-
npm ci
|
|
41
|
-
|
|
42
|
-
- name: Validate JSON Schemas
|
|
43
|
-
run: |
|
|
44
|
-
echo "🔍 Validating JSON schemas..."
|
|
45
|
-
npx .ai-context/tools/bin/claude-context.js validate --schema
|
|
46
|
-
continue-on-error: false
|
|
47
|
-
|
|
48
|
-
- name: Validate Markdown Links
|
|
49
|
-
run: |
|
|
50
|
-
echo "🔗 Checking markdown links..."
|
|
51
|
-
npx .ai-context/tools/bin/claude-context.js validate --links
|
|
52
|
-
continue-on-error: false
|
|
53
|
-
|
|
54
|
-
- name: Check for Unresolved Placeholders
|
|
55
|
-
run: |
|
|
56
|
-
echo "📝 Checking for placeholders..."
|
|
57
|
-
npx .ai-context/tools/bin/claude-context.js validate --placeholders
|
|
58
|
-
continue-on-error: true # Warning only
|
|
59
|
-
|
|
60
|
-
- name: Validate Directory Structure
|
|
61
|
-
run: |
|
|
62
|
-
echo "📁 Validating structure..."
|
|
63
|
-
npx .ai-context/tools/bin/claude-context.js validate --structure
|
|
64
|
-
continue-on-error: false
|
|
65
|
-
|
|
66
|
-
- name: Check Line Number Accuracy
|
|
67
|
-
run: |
|
|
68
|
-
echo "📍 Checking line number accuracy..."
|
|
69
|
-
npx .ai-context/tools/bin/claude-context.js validate --lines --threshold 60
|
|
70
|
-
continue-on-error: true # Warning only for line drift
|
|
71
|
-
|
|
72
|
-
- name: Generate Validation Report
|
|
73
|
-
if: always()
|
|
74
|
-
run: |
|
|
75
|
-
echo "📊 Generating full validation report..."
|
|
76
|
-
npx .ai-context/tools/bin/claude-context.js validate --all --output markdown > validation-report.md
|
|
77
|
-
cat validation-report.md
|
|
78
|
-
|
|
79
|
-
- name: Upload Validation Report
|
|
80
|
-
if: always()
|
|
81
|
-
uses: actions/upload-artifact@v4
|
|
82
|
-
with:
|
|
83
|
-
name: validation-report
|
|
84
|
-
path: validation-report.md
|
|
85
|
-
retention-days: 7
|
|
86
|
-
|
|
87
|
-
- name: Comment on PR
|
|
88
|
-
if: github.event_name == 'pull_request' && failure()
|
|
89
|
-
uses: actions/github-script@v7
|
|
90
|
-
with:
|
|
91
|
-
script: |
|
|
92
|
-
const fs = require('fs');
|
|
93
|
-
let report = '';
|
|
94
|
-
try {
|
|
95
|
-
report = fs.readFileSync('validation-report.md', 'utf8');
|
|
96
|
-
} catch (e) {
|
|
97
|
-
report = 'Validation report not available.';
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
github.rest.issues.createComment({
|
|
101
|
-
issue_number: context.issue.number,
|
|
102
|
-
owner: context.repo.owner,
|
|
103
|
-
repo: context.repo.repo,
|
|
104
|
-
body: `## 🔍 Documentation Validation Failed\n\n${report}\n\n---\n*Generated by Claude Context Engineering CI*`
|
|
105
|
-
});
|
|
1
|
+
# Claude Context Engineering - Documentation Validation
|
|
2
|
+
#
|
|
3
|
+
# This workflow validates that documentation is accurate and up-to-date.
|
|
4
|
+
# Copy this file to .github/workflows/validate-docs.yml to enable.
|
|
5
|
+
#
|
|
6
|
+
# Runs on:
|
|
7
|
+
# - Pull requests that modify .ai-context/ or source files
|
|
8
|
+
# - Manual trigger
|
|
9
|
+
|
|
10
|
+
name: Validate Documentation
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
pull_request:
|
|
14
|
+
paths:
|
|
15
|
+
- '.ai-context/**'
|
|
16
|
+
- 'src/**'
|
|
17
|
+
- 'lib/**'
|
|
18
|
+
- 'app/**'
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
validate:
|
|
23
|
+
name: Validate Claude Context Documentation
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- name: Checkout repository
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: Setup Node.js
|
|
31
|
+
uses: actions/setup-node@v4
|
|
32
|
+
with:
|
|
33
|
+
node-version: '18'
|
|
34
|
+
cache: 'npm'
|
|
35
|
+
cache-dependency-path: '.ai-context/tools/package-lock.json'
|
|
36
|
+
|
|
37
|
+
- name: Install CLI tools
|
|
38
|
+
run: |
|
|
39
|
+
cd .ai-context/tools
|
|
40
|
+
npm ci
|
|
41
|
+
|
|
42
|
+
- name: Validate JSON Schemas
|
|
43
|
+
run: |
|
|
44
|
+
echo "🔍 Validating JSON schemas..."
|
|
45
|
+
npx .ai-context/tools/bin/claude-context.js validate --schema
|
|
46
|
+
continue-on-error: false
|
|
47
|
+
|
|
48
|
+
- name: Validate Markdown Links
|
|
49
|
+
run: |
|
|
50
|
+
echo "🔗 Checking markdown links..."
|
|
51
|
+
npx .ai-context/tools/bin/claude-context.js validate --links
|
|
52
|
+
continue-on-error: false
|
|
53
|
+
|
|
54
|
+
- name: Check for Unresolved Placeholders
|
|
55
|
+
run: |
|
|
56
|
+
echo "📝 Checking for placeholders..."
|
|
57
|
+
npx .ai-context/tools/bin/claude-context.js validate --placeholders
|
|
58
|
+
continue-on-error: true # Warning only
|
|
59
|
+
|
|
60
|
+
- name: Validate Directory Structure
|
|
61
|
+
run: |
|
|
62
|
+
echo "📁 Validating structure..."
|
|
63
|
+
npx .ai-context/tools/bin/claude-context.js validate --structure
|
|
64
|
+
continue-on-error: false
|
|
65
|
+
|
|
66
|
+
- name: Check Line Number Accuracy
|
|
67
|
+
run: |
|
|
68
|
+
echo "📍 Checking line number accuracy..."
|
|
69
|
+
npx .ai-context/tools/bin/claude-context.js validate --lines --threshold 60
|
|
70
|
+
continue-on-error: true # Warning only for line drift
|
|
71
|
+
|
|
72
|
+
- name: Generate Validation Report
|
|
73
|
+
if: always()
|
|
74
|
+
run: |
|
|
75
|
+
echo "📊 Generating full validation report..."
|
|
76
|
+
npx .ai-context/tools/bin/claude-context.js validate --all --output markdown > validation-report.md
|
|
77
|
+
cat validation-report.md
|
|
78
|
+
|
|
79
|
+
- name: Upload Validation Report
|
|
80
|
+
if: always()
|
|
81
|
+
uses: actions/upload-artifact@v4
|
|
82
|
+
with:
|
|
83
|
+
name: validation-report
|
|
84
|
+
path: validation-report.md
|
|
85
|
+
retention-days: 7
|
|
86
|
+
|
|
87
|
+
- name: Comment on PR
|
|
88
|
+
if: github.event_name == 'pull_request' && failure()
|
|
89
|
+
uses: actions/github-script@v7
|
|
90
|
+
with:
|
|
91
|
+
script: |
|
|
92
|
+
const fs = require('fs');
|
|
93
|
+
let report = '';
|
|
94
|
+
try {
|
|
95
|
+
report = fs.readFileSync('validation-report.md', 'utf8');
|
|
96
|
+
} catch (e) {
|
|
97
|
+
report = 'Validation report not available.';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
github.rest.issues.createComment({
|
|
101
|
+
issue_number: context.issue.number,
|
|
102
|
+
owner: context.repo.owner,
|
|
103
|
+
repo: context.repo.repo,
|
|
104
|
+
body: `## 🔍 Documentation Validation Failed\n\n${report}\n\n---\n*Generated by Claude Context Engineering CI*`
|
|
105
|
+
});
|