stemedb/applications/aphoria/dogfood/archive/deprecated/PROJECT2-QUICKSTART-DEPRECATED.md
jml ce86eee996 chore(dogfood): archive dated documentation and remove database files from git
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>
2026-02-11 06:12:34 +00:00

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:

  1. Extract claims from authority docs
  2. Query corpus for similar dbpool patterns
  3. Suggest aligned naming (enforces consistency)
  4. 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:

  1. Verify API running: curl http://localhost:18180/health
  2. Verify corpus accessible: Query dbpool claims
  3. 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

  1. Complete Day 1 - Create claims with pattern reuse
  2. Measure metrics - Time, reuse rate, naming consistency
  3. Continue Days 2-5 - Follow dbpool/CHECKLIST.md
  4. Document flywheel - Write success story with evidence
  5. Optional: Set up automation (/aphoria-post-commit-hook or /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.