Skip to content

Commit fb57858

Browse files
author
Jonathan D.A. Jewell
committed
docs: Flag for npm→Deno conversion (RSR policy)
This repo needs to be converted from npm to Deno. See CONVERSION_NEEDED.md and .claude/CLAUDE.md for details.
1 parent 7f5980c commit fb57858

2 files changed

Lines changed: 38 additions & 97 deletions

File tree

.claude/CLAUDE.md

Lines changed: 21 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,28 @@
1-
# feedback-a-tron
1+
# Project Instructions
22

3-
> **SYNC STATUS**: Keep in sync with `STATE.scm` - run `scripts/sync-state.sh` to verify
4-
> **Last sync**: 2025-12-11T14:30:00Z
3+
## ⚠️ CONVERSION NEEDED: npm → Deno
54

6-
## Project Overview
5+
This repo currently uses npm but needs to be converted to Deno.
76

8-
Automated multi-platform feedback submission with network verification.
7+
### DO NOT:
8+
- Run `npm install`
9+
- Add new npm dependencies
10+
- Create package-lock.json
911

10-
- **Version**: 0.2.0 (alpha)
11-
- **Phase**: ~60% to v1.0
12-
- **Origin**: Claude Code API error investigation → MCP security proposals
12+
### INSTEAD:
13+
- Use `deno task` for scripts
14+
- Use npm: specifiers for dependencies (e.g., `import X from "npm:package"`)
15+
- Create deno.json instead of package.json
1316

14-
## Quick Reference
17+
### Conversion Steps:
18+
1. Analyze package.json dependencies
19+
2. Create deno.json with equivalent imports/tasks
20+
3. Update source files to use Deno imports
21+
4. Remove package.json and package-lock.json
22+
5. Test with `deno check` and `deno test`
1523

16-
### What This Project Does
24+
## Package Manager Policy (RSR)
1725

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-
```
26+
- **REQUIRED**: Deno for JavaScript/TypeScript
27+
- **FORBIDDEN**: npm, npx, node_modules (after conversion)
28+
- **FALLBACK**: Bun only if Deno is impossible

CONVERSION_NEEDED.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# npm → Deno Conversion Needed
2+
3+
This repository needs to be converted from npm to Deno per RSR policy.
4+
5+
## Current State
6+
- Uses npm/package.json
7+
- Needs Deno configuration
8+
9+
## Action Required
10+
1. Review package.json dependencies
11+
2. Create deno.json equivalent
12+
3. Update imports to use npm: specifiers or URL imports
13+
4. Remove npm artifacts
14+
5. Test with Deno runtime
15+
16+
## Priority
17+
See .claude/CLAUDE.md for conversion instructions.

0 commit comments

Comments
 (0)