Priority 1 (Critical): Database files removed from git tracking - Added **/.aphoria/db/ and **/.aphoria/wal/ to .gitignore - Removed 7 database files from dogfood/dbpool/.aphoria/db/ - Database files are runtime state (like target/), not source code - Prevents repository bloat and incorrect content type in git Priority 2 (Housekeeping): Dated documentation archived - Created archive/ structure with fixes/ and deprecated/ subdirectories - Moved SYSTEMATIC-FIXES-2026-02-10.md to archive/fixes/ - Moved SYSTEMATIC-FIXES-COMPLETE.md to archive/fixes/ - Moved PROJECT2-QUICKSTART-DEPRECATED.md to archive/deprecated/ - Moved PROJECT2-READY.md to archive/deprecated/ - Moved verify-project2-ready.sh to archive/deprecated/ - Created archive/README.md documenting archival policy These files are preserved for historical reference but no longer clutter the main dogfood directory. See archive/README.md for details. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9.2 KiB
DEPRECATED
This generic guide has been replaced by the specific httpclient project.
Use instead: httpclient/README.md and httpclient/plan.md
Project 2 Quick Start: Demonstrating the Flywheel
You're starting Project 2. This is where Aphoria's autonomous flywheel compounds knowledge from Project 1.
What's different: Project 1 established baseline patterns. Project 2 reuses them and demonstrates 50-60% time savings.
Pre-Flight: Verify Project 1 Knowledge Exists
Before starting, confirm you can access Project 1's corpus:
# Verify Project 1 (dbpool) claims exist in corpus
curl 'http://localhost:18180/v1/aphoria/corpus' | \
jq '[.items[] | select(.subject | contains("dbpool"))] | length'
# Expected: 27 claims from dbpool
# Breakdown by source
curl -s 'http://localhost:18180/v1/aphoria/corpus' | \
jq '[.items[] | select(.subject | contains("dbpool"))] | group_by(.source) | map({source: .[0].source, count: length})'
# Expected:
# [
# {"source": "community://", "count": 1},
# {"source": "owasp://", "count": 5},
# {"source": "vendor://", "count": 21}
# ]
If you see 27 claims: ✅ Ready to proceed
If you see 0 claims: ❌ Project 1 incomplete, start there first
What You'll Demonstrate
Flywheel Metrics (Evidence to Collect)
| Metric | Project 1 (Baseline) | Project 2 (Target) | How to Measure |
|---|---|---|---|
| Day 1 Time | 4 hours | <2 hours (50% faster) | Time Day 1 start to finish |
| Claims Created | 27 new | ~22 total (8-10 reused, 12-14 new) | Count in corpus after Day 1 |
| Claims Reused | 0 | 8-10 (30-40%) | Query corpus for aligned patterns |
| Naming Errors | 2-3 (had to fix) | 0 (skills enforce) | Manual review of claim subjects |
| Pattern Alignment | N/A | High (connection, timeout, tls) | Semantic comparison |
Success = Demonstrable time savings + pattern reuse + perfect naming consistency
Day 0: Pre-Execution (30 min)
Step 1: Choose Your Project 2 Domain
Suggested domains (reuse connection/security patterns from dbpool):
- HTTP client library (connection pooling, timeouts, TLS)
- gRPC service client (similar patterns to dbpool)
- WebSocket connection manager (connection lifecycle)
- Cache client (connection pooling, TTL)
Why these: All share connection management patterns with dbpool, demonstrating cross-domain knowledge reuse.
Step 2: Verify Skills Installed
# Check all 8 Aphoria skills exist
ls -la ~/.claude/skills/ | grep aphoria
# Expected output:
# aphoria/
# aphoria-claims/ ⭐ Primary for Day 1
# aphoria-suggest/ ⭐ Primary for pattern discovery
# aphoria-custom-extractor-creator/
# aphoria-corpus-import/
# aphoria-install/
# aphoria-post-commit-hook/
# aphoria-ci-setup/
If missing: Follow dbpool/docs/multi-project-setup.md installation section
Step 3: Run Validator
cd /home/jml/Workspace/stemedb/applications/aphoria/dogfood/dbpool
./scripts/validate-setup.sh
All checks must pass (API running, corpus accessible, skills available)
Day 1: Claims with Pattern Discovery (1-2 hours target)
PRIMARY WORKFLOW: Skills-Driven
Step 1: Discover Reusable Patterns (15 min)
Use aphoria-suggest skill:
In Claude Code:
/aphoria-suggest
"I'm building an HTTP client library. What patterns from dbpool should I reuse?
Show me claims about connection management, timeouts, and security."
Expected skill output:
Found 8-10 reusable patterns from dbpool:
Connection Management:
- connection_timeout: max 30s (vendor://dbpool/connection_timeout)
- max_connections: required (vendor://dbpool/max_connections)
- min_connections: min 2 (vendor://dbpool/min_connections)
Security:
- credentials/plaintext: prohibited (owasp://dbpool/credentials/plaintext)
- tls/enabled: required (owasp://dbpool/tls/enabled)
- certificate_validation: required (owasp://dbpool/certificate_validation)
Lifecycle:
- max_lifetime: required (vendor://dbpool/max_lifetime)
- idle_timeout: recommended (vendor://dbpool/idle_timeout)
Document these - you'll reference them when creating Project 2 claims.
Step 2: Fetch Project 2 Authority Sources (30 min)
For HTTP client example:
- Fetch: Requests library documentation (Python/Rust/Node)
- Fetch: HTTP client best practices (Mozilla, OWASP)
- Fetch: RFC 7230-7235 (HTTP protocol standards)
Save to: project2/docs/sources/
Step 3: Create Claims Using Skills (30-45 min)
Use aphoria-claims skill with pattern alignment:
In Claude Code:
/aphoria-claims
"Read project2/docs/sources/requests-docs.md and extract claims for HTTP client.
ALIGN NAMING with dbpool patterns:
- Use 'connection_timeout' (not 'request_timeout') to match dbpool
- Use 'max_connections' (not 'connection_limit') to match dbpool
- Use 'tls/enabled' pattern for security settings
Project prefix: httpclient/"
Skill will:
- Extract claims from authority docs
- Query corpus for similar dbpool patterns
- Suggest aligned naming (enforces consistency)
- Generate CLI commands with proper format
Expected output:
# Reused patterns (aligned with dbpool):
aphoria corpus create \
--subject "httpclient/connection_timeout" \
--predicate "max_value" \
--value "30" \
--explanation "HTTP requests MUST timeout within 30s to prevent resource exhaustion. Aligns with dbpool pattern." \
--authority "Requests Docs" \
--category "safety" \
--tier 2
# New patterns (HTTP-specific):
aphoria corpus create \
--subject "httpclient/redirect_limit" \
--predicate "max_value" \
--value "10" \
--explanation "..." \
--authority "RFC 7231" \
--category "safety" \
--tier 0
Execute commands - verify naming aligns with dbpool patterns
Step 4: Verify Pattern Reuse (5 min)
# Count total claims for Project 2
curl 'http://localhost:18180/v1/aphoria/corpus' | \
jq '[.items[] | select(.subject | contains("httpclient"))] | length'
# Expected: ~22 claims
# Count aligned patterns (same predicate/category as dbpool)
curl 'http://localhost:18180/v1/aphoria/corpus' | \
jq '[.items[] | select(.subject | contains("connection_timeout"))] | length'
# Expected: 2 (dbpool + httpclient)
# Verify naming consistency
curl 'http://localhost:18180/v1/aphoria/corpus' | \
jq '.items[] | select(.subject | contains("httpclient")) | .subject'
# All should be lowercase, slash-separated (no errors)
Success criteria:
- ✅ 8-10 claims align with dbpool patterns
- ✅ 12-14 new claims (HTTP-specific)
- ✅ 0 naming errors (skills enforced)
- ✅ Completed in <2 hours (vs dbpool's 4 hours)
Day 2-5: Follow dbpool CHECKLIST
Use: dbpool/CHECKLIST.md Days 2-5
Key difference: On Day 3, if built-in extractors don't cover your patterns:
/aphoria-custom-extractor-creator
"Generate extractors for these HTTP client violations:
- redirect_limit exceeds 10
- connection_timeout exceeds 30s
- tls disabled"
Skill generates declarative extractors aligned with your claims.
Measuring Success
Evidence to Document
Time savings:
Project 1 (dbpool) Day 1: 4 hours
Project 2 (httpclient) Day 1: 1.5 hours
Improvement: 62.5% time reduction
Pattern reuse:
Project 2 claims: 22 total
- Reused from dbpool: 9 claims (41%)
- New HTTP-specific: 13 claims (59%)
Naming consistency:
Project 1 (manual): 2 naming errors, had to fix
Project 2 (skills): 0 naming errors (enforced automatically)
Cross-project awareness:
Before Day 1: Queried corpus, found 27 dbpool patterns
Day 1: Aligned 9 claims with dbpool naming
Result: Consistent vocabulary across projects
Troubleshooting
Problem: Can't see dbpool claims
Solution: See dbpool/docs/multi-project-setup.md → "Troubleshooting Cross-Project Discovery"
Problem: Skills not suggesting patterns
Solution:
- Verify API running:
curl http://localhost:18180/health - Verify corpus accessible: Query dbpool claims
- Give skills clear context: "I'm building X, show patterns from Y"
Problem: Naming doesn't align with dbpool
Solution: Use /aphoria-claims skill - it queries corpus and suggests aligned names automatically
Quick Reference
| Phase | Primary Tool | Time |
|---|---|---|
| Pattern Discovery | /aphoria-suggest |
15 min |
| Claim Creation | /aphoria-claims |
30-45 min |
| Verification | curl + jq | 5 min |
| Total Day 1 | Skills-driven | 1-2 hours |
Compare to Project 1 (manual): 4 hours
Time savings: 50-60%
Next Steps
- Complete Day 1 - Create claims with pattern reuse
- Measure metrics - Time, reuse rate, naming consistency
- Continue Days 2-5 - Follow dbpool/CHECKLIST.md
- Document flywheel - Write success story with evidence
- Optional: Set up automation (
/aphoria-post-commit-hookor/aphoria-ci-setup)
Ready to start?
→ Verify Project 1 corpus exists (27 claims)
→ Run validator (./scripts/validate-setup.sh)
→ Choose Project 2 domain (httpclient, grpc-client, cache-client)
→ Start Day 1 with /aphoria-suggest
The flywheel is ready. Let's prove it works.