aiknowsys 0.0.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/AGENTS.template.md +207 -0
- package/CODEBASE_CHANGELOG.template.md +145 -0
- package/CODEBASE_ESSENTIALS.template.md +382 -0
- package/LICENSE +21 -0
- package/README.md +714 -0
- package/bin/cli.js +81 -0
- package/lib/commands/init.js +227 -0
- package/lib/commands/install-agents.js +100 -0
- package/lib/commands/install-skills.js +92 -0
- package/lib/commands/migrate.js +161 -0
- package/lib/commands/scan.js +418 -0
- package/lib/utils.js +93 -0
- package/package.json +53 -0
- package/scripts/migrate-existing.sh +222 -0
- package/scripts/scan-codebase.sh +379 -0
- package/scripts/setup.sh +273 -0
- package/templates/agents/README.md +270 -0
- package/templates/agents/architect.agent.template.md +58 -0
- package/templates/agents/developer.agent.template.md +27 -0
- package/templates/agents/setup-agents.sh +65 -0
- package/templates/skills/code-refactoring/SKILL.md +662 -0
- package/templates/skills/dependency-updates/SKILL.md +561 -0
- package/templates/skills/documentation-management/SKILL.md +744 -0
- package/templates/skills/skill-creator/SKILL.md +252 -0
- package/templates/skills/skill-creator/template.md +89 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# migrate-existing.sh - Full migration workflow for existing projects
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "🚀 Knowledge System Migration (Existing Project)"
|
|
7
|
+
echo ""
|
|
8
|
+
echo "This will:"
|
|
9
|
+
echo " 1. Scan your codebase"
|
|
10
|
+
echo " 2. Generate draft documentation"
|
|
11
|
+
echo " 3. Install custom agents"
|
|
12
|
+
echo " 4. Set up skills"
|
|
13
|
+
echo " 5. Initialize changelog"
|
|
14
|
+
echo ""
|
|
15
|
+
read -p "Continue? (y/n) " -n 1 -r
|
|
16
|
+
echo
|
|
17
|
+
|
|
18
|
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
19
|
+
echo "Migration cancelled."
|
|
20
|
+
exit 0
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Check we're in the right location
|
|
24
|
+
if [ ! -f "scripts/scan-codebase.sh" ]; then
|
|
25
|
+
echo "❌ Error: scripts/scan-codebase.sh not found"
|
|
26
|
+
echo " Make sure templates/ and scripts/ are in your project root"
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Step 1: Scan codebase
|
|
31
|
+
echo ""
|
|
32
|
+
echo "══════════════════════════════════════════"
|
|
33
|
+
echo "Step 1/5: Scanning codebase..."
|
|
34
|
+
echo "══════════════════════════════════════════"
|
|
35
|
+
echo ""
|
|
36
|
+
|
|
37
|
+
./scripts/scan-codebase.sh
|
|
38
|
+
|
|
39
|
+
# Step 2: Review draft
|
|
40
|
+
echo ""
|
|
41
|
+
echo "══════════════════════════════════════════"
|
|
42
|
+
echo "Step 2/5: Review generated draft"
|
|
43
|
+
echo "══════════════════════════════════════════"
|
|
44
|
+
echo ""
|
|
45
|
+
echo "📝 CODEBASE_ESSENTIALS.draft.md has been created"
|
|
46
|
+
echo ""
|
|
47
|
+
echo "IMPORTANT: You must complete the TODO sections before proceeding!"
|
|
48
|
+
echo ""
|
|
49
|
+
echo "Required sections to fill in:"
|
|
50
|
+
echo " - Core Patterns (how you structure code, handle auth, make API calls)"
|
|
51
|
+
echo " - Critical Invariants (rules that must never be violated)"
|
|
52
|
+
echo " - Common Gotchas (issues new contributors encounter)"
|
|
53
|
+
echo " - Architecture Decisions (why you chose this approach)"
|
|
54
|
+
echo ""
|
|
55
|
+
echo "Once complete, rename the file:"
|
|
56
|
+
echo " mv CODEBASE_ESSENTIALS.draft.md CODEBASE_ESSENTIALS.md"
|
|
57
|
+
echo ""
|
|
58
|
+
read -p "Press Enter when you've completed and renamed the file..."
|
|
59
|
+
|
|
60
|
+
# Verify ESSENTIALS exists
|
|
61
|
+
if [ ! -f "CODEBASE_ESSENTIALS.md" ]; then
|
|
62
|
+
echo ""
|
|
63
|
+
echo "⚠️ CODEBASE_ESSENTIALS.md not found!"
|
|
64
|
+
echo ""
|
|
65
|
+
echo "Options:"
|
|
66
|
+
echo " 1) I renamed it, continue anyway"
|
|
67
|
+
echo " 2) Exit and complete the file first"
|
|
68
|
+
read -p "Choice: " choice
|
|
69
|
+
|
|
70
|
+
if [ "$choice" != "1" ]; then
|
|
71
|
+
echo "Exiting. Complete CODEBASE_ESSENTIALS.md and run this script again."
|
|
72
|
+
exit 0
|
|
73
|
+
fi
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# Step 3: Generate AGENTS.md
|
|
77
|
+
echo ""
|
|
78
|
+
echo "══════════════════════════════════════════"
|
|
79
|
+
echo "Step 3/5: Creating AGENTS.md"
|
|
80
|
+
echo "══════════════════════════════════════════"
|
|
81
|
+
echo ""
|
|
82
|
+
|
|
83
|
+
if [ -f "templates/AGENTS.template.md" ]; then
|
|
84
|
+
# Try to extract validation commands from ESSENTIALS
|
|
85
|
+
if [ -f "CODEBASE_ESSENTIALS.md" ]; then
|
|
86
|
+
echo "📝 Generating AGENTS.md from template..."
|
|
87
|
+
cp templates/AGENTS.template.md AGENTS.md
|
|
88
|
+
# Note: For now using template as-is. Users can customize validation matrix.
|
|
89
|
+
echo "✅ AGENTS.md created (customize validation matrix as needed)"
|
|
90
|
+
fi
|
|
91
|
+
else
|
|
92
|
+
echo "⚠️ AGENTS.template.md not found, skipping..."
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
# Step 4: Install custom agents
|
|
96
|
+
echo ""
|
|
97
|
+
echo "══════════════════════════════════════════"
|
|
98
|
+
echo "Step 4/5: Installing custom agents..."
|
|
99
|
+
echo "══════════════════════════════════════════"
|
|
100
|
+
echo ""
|
|
101
|
+
|
|
102
|
+
if [ -f "templates/agents/setup-agents.sh" ]; then
|
|
103
|
+
bash templates/agents/setup-agents.sh CODEBASE_ESSENTIALS.md
|
|
104
|
+
else
|
|
105
|
+
echo "⚠️ Agent setup script not found"
|
|
106
|
+
echo " Manual installation: copy templates/agents/ to .github/agents/"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Step 5: Install skills
|
|
110
|
+
echo ""
|
|
111
|
+
echo "══════════════════════════════════════════"
|
|
112
|
+
echo "Step 5/5: Installing universal skills..."
|
|
113
|
+
echo "══════════════════════════════════════════"
|
|
114
|
+
echo ""
|
|
115
|
+
|
|
116
|
+
mkdir -p .github/skills
|
|
117
|
+
|
|
118
|
+
# Copy skill template
|
|
119
|
+
if [ -d ".github/skills/_skill-template" ]; then
|
|
120
|
+
echo "✅ Skill template already present"
|
|
121
|
+
else
|
|
122
|
+
if [ -d "templates/../.github/skills/_skill-template" ]; then
|
|
123
|
+
cp -r templates/../.github/skills/_skill-template .github/skills/
|
|
124
|
+
echo "✅ Skill template installed"
|
|
125
|
+
fi
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
# Copy universal skills (check both templates/skills and .github/skills locations)
|
|
129
|
+
SKILLS_INSTALLED=0
|
|
130
|
+
for skill in dependency-updates documentation-management code-refactoring testing-best-practices skill-creator; do
|
|
131
|
+
if [ -d ".github/skills/$skill" ]; then
|
|
132
|
+
echo "✅ $skill skill already present"
|
|
133
|
+
((SKILLS_INSTALLED++))
|
|
134
|
+
elif [ -d "templates/skills/$skill" ]; then
|
|
135
|
+
cp -r templates/skills/$skill .github/skills/
|
|
136
|
+
echo "✅ $skill skill installed"
|
|
137
|
+
((SKILLS_INSTALLED++))
|
|
138
|
+
fi
|
|
139
|
+
done
|
|
140
|
+
|
|
141
|
+
if [ $SKILLS_INSTALLED -eq 0 ]; then
|
|
142
|
+
echo "⚠️ No universal skills found in templates/"
|
|
143
|
+
echo " You can add skills later to .github/skills/"
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
# Initialize changelog
|
|
147
|
+
echo ""
|
|
148
|
+
echo "📝 Initializing CODEBASE_CHANGELOG.md..."
|
|
149
|
+
|
|
150
|
+
PROJECT_NAME=$(basename "$PWD")
|
|
151
|
+
DATE=$(date +"%B %d, %Y")
|
|
152
|
+
|
|
153
|
+
if [ -f "CODEBASE_CHANGELOG.md" ]; then
|
|
154
|
+
echo "⚠️ CODEBASE_CHANGELOG.md already exists, skipping..."
|
|
155
|
+
else
|
|
156
|
+
cat > CODEBASE_CHANGELOG.md << EOF
|
|
157
|
+
# Codebase Changelog
|
|
158
|
+
|
|
159
|
+
**Purpose:** Session-by-session record of changes, validations, and learnings.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Session: Knowledge System Migration ($DATE)
|
|
164
|
+
|
|
165
|
+
**Goal**: Adopt knowledge system for existing $PROJECT_NAME project
|
|
166
|
+
|
|
167
|
+
**Changes**:
|
|
168
|
+
- Scanned codebase and generated CODEBASE_ESSENTIALS.md
|
|
169
|
+
- Installed custom agents (Developer + Architect)
|
|
170
|
+
- Added universal skills ($SKILLS_INSTALLED skills)
|
|
171
|
+
- Initialized this changelog
|
|
172
|
+
|
|
173
|
+
**Validation**:
|
|
174
|
+
- ✅ All template files created
|
|
175
|
+
- ⬜ TODO: Run project tests to verify baseline
|
|
176
|
+
|
|
177
|
+
**Next Steps**:
|
|
178
|
+
- Complete any remaining TODO sections in CODEBASE_ESSENTIALS.md
|
|
179
|
+
- Start using @Developer workflow
|
|
180
|
+
- Document patterns as discovered
|
|
181
|
+
- Add validation results to future sessions
|
|
182
|
+
|
|
183
|
+
**Key Learning**: Knowledge system provides structure for AI-assisted development while maintaining consistency.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
EOF
|
|
187
|
+
echo "✅ CODEBASE_CHANGELOG.md created"
|
|
188
|
+
fi
|
|
189
|
+
|
|
190
|
+
# Final summary
|
|
191
|
+
echo ""
|
|
192
|
+
echo "══════════════════════════════════════════"
|
|
193
|
+
echo "🎉 Migration Complete!"
|
|
194
|
+
echo "══════════════════════════════════════════"
|
|
195
|
+
echo ""
|
|
196
|
+
echo "📁 Files created:"
|
|
197
|
+
echo " - CODEBASE_ESSENTIALS.md (review and complete TODOs)"
|
|
198
|
+
echo " - AGENTS.md (AI workflow instructions)"
|
|
199
|
+
echo " - CODEBASE_CHANGELOG.md (session history)"
|
|
200
|
+
if [ -d ".github/agents" ]; then
|
|
201
|
+
echo " - .github/agents/ (Developer + Architect)"
|
|
202
|
+
fi
|
|
203
|
+
if [ $SKILLS_INSTALLED -gt 0 ]; then
|
|
204
|
+
echo " - .github/skills/ ($SKILLS_INSTALLED skills installed)"
|
|
205
|
+
fi
|
|
206
|
+
echo ""
|
|
207
|
+
echo "📋 Immediate next steps:"
|
|
208
|
+
echo " 1. ✅ Complete any remaining TODO sections in CODEBASE_ESSENTIALS.md"
|
|
209
|
+
echo " 2. ⬜ Run your project's tests to establish baseline"
|
|
210
|
+
echo " 3. ⬜ Add baseline validation results to CHANGELOG"
|
|
211
|
+
echo " 4. ⬜ Review .github/agents/README.md for workflow details"
|
|
212
|
+
echo ""
|
|
213
|
+
echo "🚀 Start using the system:"
|
|
214
|
+
echo " @Developer <your request> → Implements and auto-reviews"
|
|
215
|
+
echo " @SeniorArchitect <file> → Direct review request"
|
|
216
|
+
echo ""
|
|
217
|
+
echo "📖 Keep improving:"
|
|
218
|
+
echo " - Document patterns in CODEBASE_ESSENTIALS.md as you find them"
|
|
219
|
+
echo " - Update CHANGELOG after each session"
|
|
220
|
+
echo " - Create custom skills for your workflows"
|
|
221
|
+
echo ""
|
|
222
|
+
echo "💡 Tip: The system works best when ESSENTIALS is kept up-to-date!"
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# scan-codebase.sh - Analyze existing project and generate draft ESSENTIALS
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "🔍 Scanning Codebase..."
|
|
7
|
+
echo ""
|
|
8
|
+
|
|
9
|
+
PROJECT_ROOT="${1:-.}"
|
|
10
|
+
cd "$PROJECT_ROOT"
|
|
11
|
+
|
|
12
|
+
# Detect project name
|
|
13
|
+
PROJECT_NAME=$(basename "$PWD")
|
|
14
|
+
DATE=$(date +"%B %d, %Y")
|
|
15
|
+
|
|
16
|
+
echo "📁 Project: $PROJECT_NAME"
|
|
17
|
+
echo ""
|
|
18
|
+
|
|
19
|
+
# Initialize findings
|
|
20
|
+
FRONTEND_FRAMEWORK=""
|
|
21
|
+
BACKEND_FRAMEWORK=""
|
|
22
|
+
LANGUAGE=""
|
|
23
|
+
BUILD_TOOL=""
|
|
24
|
+
TEST_FRAMEWORK=""
|
|
25
|
+
PACKAGE_MANAGER=""
|
|
26
|
+
CONTAINER_PLATFORM=""
|
|
27
|
+
DATABASE=""
|
|
28
|
+
TEST_COMMANDS=()
|
|
29
|
+
VALIDATION_ROWS=""
|
|
30
|
+
|
|
31
|
+
# Detect frontend (JavaScript/TypeScript)
|
|
32
|
+
if [ -f "package.json" ]; then
|
|
33
|
+
echo "📦 Found package.json"
|
|
34
|
+
PACKAGE_MANAGER="npm"
|
|
35
|
+
|
|
36
|
+
# Detect framework
|
|
37
|
+
if grep -q '"vue"' package.json; then
|
|
38
|
+
VERSION=$(grep -o '"vue": "[^"]*"' package.json | cut -d'"' -f4 || echo "")
|
|
39
|
+
FRONTEND_FRAMEWORK="Vue ${VERSION}"
|
|
40
|
+
elif grep -q '"react"' package.json; then
|
|
41
|
+
VERSION=$(grep -o '"react": "[^"]*"' package.json | cut -d'"' -f4 || echo "")
|
|
42
|
+
FRONTEND_FRAMEWORK="React ${VERSION}"
|
|
43
|
+
elif grep -q '"@angular' package.json; then
|
|
44
|
+
FRONTEND_FRAMEWORK="Angular"
|
|
45
|
+
elif grep -q '"svelte"' package.json; then
|
|
46
|
+
FRONTEND_FRAMEWORK="Svelte"
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# Detect build tool
|
|
50
|
+
if grep -q '"vite"' package.json; then
|
|
51
|
+
BUILD_TOOL="Vite"
|
|
52
|
+
elif grep -q '"webpack"' package.json; then
|
|
53
|
+
BUILD_TOOL="Webpack"
|
|
54
|
+
elif grep -q '"next"' package.json; then
|
|
55
|
+
BUILD_TOOL="Next.js"
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
# Detect test framework
|
|
59
|
+
if grep -q '"vitest"' package.json; then
|
|
60
|
+
TEST_FRAMEWORK="Vitest"
|
|
61
|
+
if grep -q '"test":' package.json; then
|
|
62
|
+
TEST_COMMANDS+=("npm test")
|
|
63
|
+
elif grep -q '"test:run":' package.json; then
|
|
64
|
+
TEST_COMMANDS+=("npm run test:run")
|
|
65
|
+
fi
|
|
66
|
+
elif grep -q '"jest"' package.json; then
|
|
67
|
+
TEST_FRAMEWORK="Jest"
|
|
68
|
+
TEST_COMMANDS+=("npm test")
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# Check for type checking
|
|
72
|
+
if grep -q '"type-check":' package.json; then
|
|
73
|
+
TEST_COMMANDS+=("npm run type-check")
|
|
74
|
+
fi
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# Detect TypeScript
|
|
78
|
+
if [ -f "tsconfig.json" ]; then
|
|
79
|
+
echo "📘 Found TypeScript configuration"
|
|
80
|
+
LANGUAGE="TypeScript"
|
|
81
|
+
if [ ${#TEST_COMMANDS[@]} -eq 0 ]; then
|
|
82
|
+
TEST_COMMANDS+=("tsc --noEmit")
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
# Detect Python
|
|
87
|
+
if [ -f "pyproject.toml" ] || [ -f "requirements.txt" ]; then
|
|
88
|
+
echo "🐍 Found Python project"
|
|
89
|
+
LANGUAGE="Python"
|
|
90
|
+
|
|
91
|
+
# Detect Python version
|
|
92
|
+
if [ -f "pyproject.toml" ] && grep -q "python" pyproject.toml; then
|
|
93
|
+
PYTHON_VERSION=$(grep -o 'python = "[^"]*"' pyproject.toml | cut -d'"' -f2 || echo "")
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# Detect framework
|
|
97
|
+
if grep -rq "django" requirements.txt pyproject.toml 2>/dev/null; then
|
|
98
|
+
BACKEND_FRAMEWORK="Django"
|
|
99
|
+
elif grep -rq "fastapi" requirements.txt pyproject.toml 2>/dev/null; then
|
|
100
|
+
BACKEND_FRAMEWORK="FastAPI"
|
|
101
|
+
elif grep -rq "flask" requirements.txt pyproject.toml 2>/dev/null; then
|
|
102
|
+
BACKEND_FRAMEWORK="Flask"
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
# Detect test framework
|
|
106
|
+
if [ -f "pytest.ini" ] || grep -q "pytest" pyproject.toml 2>/dev/null || grep -q "pytest" requirements.txt 2>/dev/null; then
|
|
107
|
+
TEST_FRAMEWORK="pytest"
|
|
108
|
+
TEST_COMMANDS+=("pytest")
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
PACKAGE_MANAGER="pip"
|
|
112
|
+
fi
|
|
113
|
+
|
|
114
|
+
# Detect Rust
|
|
115
|
+
if [ -f "Cargo.toml" ]; then
|
|
116
|
+
echo "🦀 Found Rust project"
|
|
117
|
+
LANGUAGE="Rust"
|
|
118
|
+
BACKEND_FRAMEWORK="Rust"
|
|
119
|
+
PACKAGE_MANAGER="cargo"
|
|
120
|
+
TEST_FRAMEWORK="cargo test"
|
|
121
|
+
TEST_COMMANDS+=("cargo test")
|
|
122
|
+
TEST_COMMANDS+=("cargo check")
|
|
123
|
+
fi
|
|
124
|
+
|
|
125
|
+
# Detect Go
|
|
126
|
+
if [ -f "go.mod" ]; then
|
|
127
|
+
echo "🐹 Found Go project"
|
|
128
|
+
LANGUAGE="Go"
|
|
129
|
+
PACKAGE_MANAGER="go mod"
|
|
130
|
+
TEST_COMMANDS+=("go test ./...")
|
|
131
|
+
TEST_COMMANDS+=("go vet ./...")
|
|
132
|
+
fi
|
|
133
|
+
|
|
134
|
+
# Detect Docker
|
|
135
|
+
if [ -f "docker-compose.yml" ]; then
|
|
136
|
+
echo "🐳 Found Docker Compose setup"
|
|
137
|
+
CONTAINER_PLATFORM="Docker Compose"
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
# Detect database
|
|
141
|
+
if grep -rq "postgresql\|psycopg" . 2>/dev/null; then
|
|
142
|
+
DATABASE="PostgreSQL"
|
|
143
|
+
elif grep -rq "mongodb\|pymongo" . 2>/dev/null; then
|
|
144
|
+
DATABASE="MongoDB"
|
|
145
|
+
elif grep -rq "mysql" . 2>/dev/null; then
|
|
146
|
+
DATABASE="MySQL"
|
|
147
|
+
elif grep -rq "sqlite" . 2>/dev/null; then
|
|
148
|
+
DATABASE="SQLite"
|
|
149
|
+
fi
|
|
150
|
+
|
|
151
|
+
# Build validation rows
|
|
152
|
+
for cmd in "${TEST_COMMANDS[@]}"; do
|
|
153
|
+
VALIDATION_ROWS+="| Tests | \`$cmd\` | ✅ MANDATORY |\n"
|
|
154
|
+
done
|
|
155
|
+
|
|
156
|
+
# Generate draft ESSENTIALS
|
|
157
|
+
echo ""
|
|
158
|
+
echo "📝 Generating draft CODEBASE_ESSENTIALS.md..."
|
|
159
|
+
|
|
160
|
+
cat > CODEBASE_ESSENTIALS.draft.md << EOF
|
|
161
|
+
# Codebase Essentials - $PROJECT_NAME
|
|
162
|
+
|
|
163
|
+
**Generated:** $DATE
|
|
164
|
+
**Status:** ⚠️ DRAFT - Review and customize before using
|
|
165
|
+
**Source:** Automated scan of existing codebase
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 🚨 CRITICAL RULE: Never Rush - Always Follow Process
|
|
170
|
+
|
|
171
|
+
**"Never rush, just fix it well and ALWAYS follow knowledge system procedures"**
|
|
172
|
+
|
|
173
|
+
**This applies to ALL changes, including:**
|
|
174
|
+
- ✅ "Quick fixes" and "little bugs"
|
|
175
|
+
- ✅ Urgent production issues
|
|
176
|
+
- ✅ Simple one-line changes
|
|
177
|
+
- ✅ Documentation updates
|
|
178
|
+
- ✅ Configuration tweaks
|
|
179
|
+
|
|
180
|
+
**The process (non-negotiable):**
|
|
181
|
+
1. Read CODEBASE_ESSENTIALS.md at session start
|
|
182
|
+
2. Check for existing patterns before implementing
|
|
183
|
+
3. Make changes + write/update tests
|
|
184
|
+
4. Run validation (see matrix below)
|
|
185
|
+
5. Update documentation if patterns changed
|
|
186
|
+
6. Commit with proper message
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Technology Stack
|
|
191
|
+
|
|
192
|
+
EOF
|
|
193
|
+
|
|
194
|
+
# Add detected stack
|
|
195
|
+
if [ -n "$FRONTEND_FRAMEWORK" ]; then
|
|
196
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << EOF
|
|
197
|
+
**Frontend:**
|
|
198
|
+
- **Framework:** $FRONTEND_FRAMEWORK
|
|
199
|
+
- **Language:** ${LANGUAGE:-JavaScript}
|
|
200
|
+
- **Build Tool:** ${BUILD_TOOL:-Not detected}
|
|
201
|
+
- **Package Manager:** $PACKAGE_MANAGER
|
|
202
|
+
|
|
203
|
+
EOF
|
|
204
|
+
fi
|
|
205
|
+
|
|
206
|
+
if [ -n "$BACKEND_FRAMEWORK" ]; then
|
|
207
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << EOF
|
|
208
|
+
**Backend:**
|
|
209
|
+
- **Framework:** $BACKEND_FRAMEWORK
|
|
210
|
+
- **Language:** $LANGUAGE
|
|
211
|
+
- **Package Manager:** $PACKAGE_MANAGER
|
|
212
|
+
|
|
213
|
+
EOF
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
if [ -n "$TEST_FRAMEWORK" ]; then
|
|
217
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << EOF
|
|
218
|
+
**Testing:**
|
|
219
|
+
- **Framework:** $TEST_FRAMEWORK
|
|
220
|
+
|
|
221
|
+
EOF
|
|
222
|
+
fi
|
|
223
|
+
|
|
224
|
+
if [ -n "$CONTAINER_PLATFORM" ] || [ -n "$DATABASE" ]; then
|
|
225
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << EOF
|
|
226
|
+
**Infrastructure:**
|
|
227
|
+
${CONTAINER_PLATFORM:+- **Containerization:** $CONTAINER_PLATFORM}
|
|
228
|
+
${DATABASE:+- **Database:** $DATABASE}
|
|
229
|
+
|
|
230
|
+
EOF
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
# Add validation matrix
|
|
234
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << EOF
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Validation Matrix
|
|
238
|
+
|
|
239
|
+
**Run these commands before claiming work is complete:**
|
|
240
|
+
|
|
241
|
+
| Changed | Command | Required |
|
|
242
|
+
|---------|---------|----------|
|
|
243
|
+
EOF
|
|
244
|
+
|
|
245
|
+
# Add detected test commands
|
|
246
|
+
for cmd in "${TEST_COMMANDS[@]}"; do
|
|
247
|
+
echo "| Tests | \`$cmd\` | ✅ MANDATORY |" >> CODEBASE_ESSENTIALS.draft.md
|
|
248
|
+
done
|
|
249
|
+
|
|
250
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << 'EOF'
|
|
251
|
+
|
|
252
|
+
**🚨 RULE: Never claim work is complete without running validation!**
|
|
253
|
+
|
|
254
|
+
**Detected validation commands:**
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
EOF
|
|
258
|
+
|
|
259
|
+
for cmd in "${TEST_COMMANDS[@]}"; do
|
|
260
|
+
echo "$cmd" >> CODEBASE_ESSENTIALS.draft.md
|
|
261
|
+
done
|
|
262
|
+
|
|
263
|
+
cat >> CODEBASE_ESSENTIALS.draft.md << 'EOF'
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 📝 TODO: Complete These Sections
|
|
269
|
+
|
|
270
|
+
The scanner detected your tech stack, but YOU need to document:
|
|
271
|
+
|
|
272
|
+
### 1. Core Patterns
|
|
273
|
+
|
|
274
|
+
**How do you structure components/modules?**
|
|
275
|
+
- TODO: Document your project structure
|
|
276
|
+
- TODO: Component/module organization patterns
|
|
277
|
+
- TODO: Naming conventions
|
|
278
|
+
|
|
279
|
+
**How is authentication handled?**
|
|
280
|
+
- TODO: Auth flow (JWT, sessions, OAuth, etc.)
|
|
281
|
+
- TODO: Token storage approach
|
|
282
|
+
- TODO: Permission/authorization patterns
|
|
283
|
+
|
|
284
|
+
**How are API calls made?**
|
|
285
|
+
- TODO: HTTP client setup
|
|
286
|
+
- TODO: Error handling patterns
|
|
287
|
+
- TODO: Request/response interceptors
|
|
288
|
+
|
|
289
|
+
**What's your state management approach?**
|
|
290
|
+
- TODO: State library (if any)
|
|
291
|
+
- TODO: Where state lives
|
|
292
|
+
- TODO: Update patterns
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
### 2. Critical Invariants
|
|
297
|
+
|
|
298
|
+
**What rules must NEVER be violated?**
|
|
299
|
+
|
|
300
|
+
1. **TODO: Add invariant 1**
|
|
301
|
+
- What: [Description]
|
|
302
|
+
- Why: [Rationale]
|
|
303
|
+
- Example: [Code example]
|
|
304
|
+
|
|
305
|
+
2. **TODO: Add invariant 2**
|
|
306
|
+
- What: [Description]
|
|
307
|
+
- Why: [Rationale]
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
### 3. Common Gotchas
|
|
312
|
+
|
|
313
|
+
**What issues do new contributors encounter?**
|
|
314
|
+
|
|
315
|
+
### TODO: Gotcha 1
|
|
316
|
+
|
|
317
|
+
**Problem:** [What goes wrong]
|
|
318
|
+
|
|
319
|
+
**Solution:** [How to fix it]
|
|
320
|
+
|
|
321
|
+
**Example:**
|
|
322
|
+
```
|
|
323
|
+
// TODO: Add code example
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
### 4. Architecture Decisions
|
|
329
|
+
|
|
330
|
+
**Why did you choose this structure?**
|
|
331
|
+
|
|
332
|
+
### TODO: Decision 1
|
|
333
|
+
|
|
334
|
+
**Decision:** [What was decided]
|
|
335
|
+
|
|
336
|
+
**Rationale:** [Why this approach]
|
|
337
|
+
|
|
338
|
+
**Trade-offs:**
|
|
339
|
+
- ✅ Benefit 1
|
|
340
|
+
- ⚠️ Cost/limitation 1
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Next Steps
|
|
345
|
+
|
|
346
|
+
1. ✅ Review this generated file
|
|
347
|
+
2. ⬜ Fill in TODO sections above
|
|
348
|
+
3. ⬜ Add project-specific constraints
|
|
349
|
+
4. ⬜ Document your coding standards
|
|
350
|
+
5. ⬜ Run validation commands to verify correctness
|
|
351
|
+
6. ⬜ Rename to CODEBASE_ESSENTIALS.md when ready
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
*Generated by Knowledge System Template scanner*
|
|
356
|
+
EOF
|
|
357
|
+
|
|
358
|
+
echo ""
|
|
359
|
+
echo "✅ Draft generated: CODEBASE_ESSENTIALS.draft.md"
|
|
360
|
+
echo ""
|
|
361
|
+
echo "📊 Detected:"
|
|
362
|
+
[ -n "$FRONTEND_FRAMEWORK" ] && echo " - Frontend: $FRONTEND_FRAMEWORK"
|
|
363
|
+
[ -n "$BACKEND_FRAMEWORK" ] && echo " - Backend: $BACKEND_FRAMEWORK"
|
|
364
|
+
[ -n "$LANGUAGE" ] && echo " - Language: $LANGUAGE"
|
|
365
|
+
[ -n "$BUILD_TOOL" ] && echo " - Build Tool: $BUILD_TOOL"
|
|
366
|
+
[ -n "$CONTAINER_PLATFORM" ] && echo " - Infrastructure: $CONTAINER_PLATFORM"
|
|
367
|
+
[ -n "$DATABASE" ] && echo " - Database: $DATABASE"
|
|
368
|
+
echo " - Test commands: ${#TEST_COMMANDS[@]} found"
|
|
369
|
+
echo ""
|
|
370
|
+
echo "⚠️ IMPORTANT: This is a STARTING POINT"
|
|
371
|
+
echo " Review and customize before using in production!"
|
|
372
|
+
echo ""
|
|
373
|
+
echo "📖 Next: Edit CODEBASE_ESSENTIALS.draft.md to add:"
|
|
374
|
+
echo " - Your actual patterns and conventions"
|
|
375
|
+
echo " - Critical invariants"
|
|
376
|
+
echo " - Common gotchas"
|
|
377
|
+
echo " - Architecture decisions"
|
|
378
|
+
echo ""
|
|
379
|
+
echo "💡 Tip: Rename to CODEBASE_ESSENTIALS.md when complete"
|