Skip to content

Commit dd074e6

Browse files
Jonathan D.A. Jewellclaude
andcommitted
feat: Add STATE.scm/CLAUDE.md sync mechanism
- Update STATE.scm with 2025-12-11 work - New version-status section for v1 tracking - New components: feedback_submitter, credentials, network_verifier - External contributions tracking (MCP SEPs, bug reports) - Sync metadata for validation - Create .claude/CLAUDE.md for Claude Code context - Derived from STATE.scm (source of truth) - Quick reference for project state - v1.0 blockers checklist - Add scripts/sync-state.sh - Check sync status between files - Update timestamps - Pre-commit hook installation This prevents STATE.scm and CLAUDE.md from drifting out of sync. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 7731027 commit dd074e6

3 files changed

Lines changed: 376 additions & 117 deletions

File tree

.claude/CLAUDE.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# feedback-a-tron
2+
3+
> **SYNC STATUS**: Keep in sync with `STATE.scm` - run `scripts/sync-state.sh` to verify
4+
> **Last sync**: 2025-12-11T14:30:00Z
5+
6+
## Project Overview
7+
8+
Automated multi-platform feedback submission with network verification.
9+
10+
- **Version**: 0.2.0 (alpha)
11+
- **Phase**: ~60% to v1.0
12+
- **Origin**: Claude Code API error investigation → MCP security proposals
13+
14+
## Quick Reference
15+
16+
### What This Project Does
17+
18+
1. **Multi-platform issue submission** - Submit to GitHub, GitLab, Bitbucket, Codeberg from one place
19+
2. **Network verification** - Verify submissions actually arrive (latency, packet loss, TLS, DANE)
20+
3. **Credential rotation** - Rotate API tokens to avoid rate limits
21+
4. **MCP integration** - `submit_feedback` tool for Claude Code
22+
23+
### Key Files
24+
25+
```
26+
elixir-mcp/lib/
27+
├── feedback_submitter.ex # Multi-platform submission GenServer
28+
├── credentials.ex # Credential management with rotation
29+
├── network_verifier.ex # Network-layer verification
30+
└── mcp/tools/submit_feedback.ex # MCP tool for Claude
31+
32+
docs/
33+
└── LANDSCAPE.adoc # Ecosystem analysis
34+
```
35+
36+
### Tech Stack
37+
38+
- **MCP Server**: Elixir (OTP supervision, pattern matching)
39+
- **Network Tools**: ping, traceroute, mtr, openssl, dig
40+
- **Future**: Julia (stats), ReScript-Tea (UI), Oxigraph (RDF)
41+
42+
## v1.0 Blockers
43+
44+
### Must Have
45+
- [ ] Elixir MCP server compiles and runs
46+
- [ ] Multi-platform submission works (GitHub, GitLab)
47+
- [ ] Network verification pre-flight checks
48+
- [ ] Credential rotation functional
49+
- [ ] Basic deduplication
50+
51+
### Should Have
52+
- [ ] Bitbucket and Codeberg support
53+
- [ ] Post-submission verification
54+
- [ ] DNSSEC/DANE checks
55+
- [ ] Audit logging
56+
57+
## Recent Work (2025-12-11)
58+
59+
1. Created `FeedbackATron.Submitter` - multi-platform submission
60+
2. Created `FeedbackATron.Credentials` - credential rotation
61+
3. Created `FeedbackATron.NetworkVerifier` - network verification
62+
4. Created MCP tool `submit_feedback`
63+
5. Submitted MCP Security SEPs (#1959-#1962)
64+
6. Submitted Claude Code bug report (#13683)
65+
66+
## External Contributions
67+
68+
| Date | Target | Issues | Topic |
69+
|------|--------|--------|-------|
70+
| 2025-12-11 | modelcontextprotocol | #1959-#1962 | MCP Security (DNS, .well-known, headers, unified profile) |
71+
| 2025-12-11 | anthropics/claude-code | #13683 | Content filter session corruption |
72+
73+
## Design Decisions
74+
75+
- **Elixir over Rust**: OTP supervision, pattern matching for Datalog
76+
- **ETS over SQLite**: In-memory speed, Oxigraph for persistence
77+
- **CLI fallback**: gh/glab already authenticated, handles token refresh
78+
- **Network verification mandatory**: Feedback silently fails without it
79+
80+
## Commands
81+
82+
```bash
83+
# Run MCP server
84+
cd elixir-mcp && mix deps.get && iex -S mix
85+
86+
# Test submission (when complete)
87+
FeedbackATron.Submitter.submit(%{
88+
title: "Test issue",
89+
body: "Testing",
90+
repo: "owner/repo"
91+
}, platforms: [:github])
92+
```
93+
94+
## Sync Validation
95+
96+
STATE.scm is the source of truth. CLAUDE.md is derived.
97+
98+
```bash
99+
# Check sync
100+
./scripts/sync-state.sh check
101+
102+
# Regenerate CLAUDE.md from STATE.scm
103+
./scripts/sync-state.sh generate
104+
```

0 commit comments

Comments
 (0)