Compare commits

..

3 commits

Author SHA1 Message Date
a82b15ded5 chore(walletpress): add .gitattributes (fleet standard) 2026-07-06 14:17:32 +02:00
560a17bbe6 docs: rewrite README and add PRODUCT, ARCHITECTURE, ROADMAP, TODO per governance framework 2026-07-03 15:56:28 +02:00
root
5759e18b9c docs(issues): add YAML issue forms (bug, feature) + config
- .forgejo/ISSUE_TEMPLATE/bug.yml
- .forgejo/ISSUE_TEMPLATE/feature.yml
- .forgejo/ISSUE_TEMPLATE/config.yml: blank_issues_enabled=false,
  contact_links to discussions (Q&A, Feature Requests, Announcements)

Discussions per repo land in a separate follow-up commit.
2026-07-02 00:06:49 +02:00
6 changed files with 324 additions and 0 deletions

View file

@ -0,0 +1,86 @@
name: Bug Report
description: Report a defect or unexpected behavior
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for reporting a bug. Please fill in the sections below.
- type: input
id: version
attributes:
label: Version
description: Tag, branch, or commit SHA where the bug reproduces
placeholder: "v1.2.3 or main@abc1234"
validations:
required: true
- type: dropdown
id: severity
attributes:
label: Severity
description: How bad is the impact?
options:
- Critical (data loss, security, total outage)
- High (major feature broken, no workaround)
- Medium (feature broken, workaround exists)
- Low (minor, cosmetic)
validations:
required: true
- type: textarea
id: summary
attributes:
label: What happened?
description: Clear, factual description of the bug
placeholder: |
Expected: ...
Actual: ...
validations:
required: true
- type: textarea
id: repro
attributes:
label: Steps to reproduce
description: Numbered steps. Include URLs, commands, inputs.
placeholder: |
1. Go to /scanner/scan
2. Enter address 0x...
3. Click "Analyze"
4. See "undefined" instead of risk score
render: shell
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs / errors / stack trace
description: Paste relevant output. Use a code block.
render: shell
placeholder: |
```
2026-07-02T10:00:00 ERROR ...
```
- type: input
id: env
attributes:
label: Environment
description: OS, browser, runtime version, etc.
placeholder: "macOS 14.5, Chrome 125, Node 22.3"
- type: checkboxes
id: checks
attributes:
label: Pre-submit checks
options:
- label: I searched existing issues and didn't find a duplicate
required: true
- label: I can reproduce this on `main` HEAD
required: false
- label: I'm willing to submit a PR
required: false

View file

@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Q&A
url: https://git.rugmunch.io/RugMunchMedia/walletpress/discussions/new?category=q-a
about: Use this for questions and troubleshooting
- name: Feature Requests
url: https://git.rugmunch.io/RugMunchMedia/walletpress/discussions/new?category=feature-requests
about: Suggest a new feature or improvement (preview / brainstorm)
- name: Announcements
url: https://git.rugmunch.io/RugMunchMedia/walletpress/discussions/new?category=announcements
about: Stay up to date on releases and changes

View file

@ -0,0 +1,83 @@
name: Feature Request
description: Propose a new feature or improvement
title: "[Feature]: "
labels: ["enhancement", "triage"]
body:
- type: markdown
attributes:
value: |
Use this for new features or improvements. For bugs, use the Bug Report template.
- type: dropdown
id: area
attributes:
label: Area
description: Which product / surface does this affect?
options:
- RMI (scanner / dashboard)
- Pry (crawler)
- WalletPress
- RugCharts
- RugMaps
- x402 Gateway
- Infra / CI / tooling
- Other
validations:
required: true
- type: textarea
id: problem
attributes:
label: Problem / motivation
description: What user pain or gap does this address? Why is it worth building?
placeholder: |
As a <user type>, I want to <action>, so that <outcome>.
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed solution
description: How would you build it? API, UI, data model.
placeholder: |
- Add new endpoint POST /api/v1/...
- Add new column `risk_score` to `tokens` table
- Add new React component `RiskBadge`
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Other ways to solve this. Why this approach?
- type: textarea
id: scope
attributes:
label: Acceptance criteria
description: How do we know it's done? Checklist.
placeholder: |
- [ ] Endpoint returns <expected shape>
- [ ] Tests cover happy + edge cases
- [ ] Docs updated
- [ ] No new lint errors
- type: checkboxes
id: effort
attributes:
label: Effort estimate
options:
- Small (< 1 day)
- Medium (1-3 days)
- Large (1-2 weeks)
- XL (2+ weeks, breaking change)
- type: checkboxes
id: checks
attributes:
label: Pre-submit checks
options:
- label: I searched existing issues and didn't find a duplicate
required: true
- label: I'm willing to submit a PR
required: false

79
.gitattributes vendored Normal file
View file

@ -0,0 +1,79 @@
# .gitattributes — Rug Munch Media fleet standard
# See https://git.rugmunch.io/RugMunchMedia/standards for source of truth.
# ── Line endings ───────────────────────────────────────────────
* text=auto eol=lf
# Shell scripts must use LF even on Windows checkouts
*.sh text eol=lf
*.bash text eol=lf
# Windows-native scripts keep CRLF
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
# ── Binary defaults ────────────────────────────────────────────
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.webp binary
*.pdf binary
*.zip binary
*.gz binary
*.tgz binary
*.tar binary
*.bz2 binary
*.xz binary
*.7z binary
*.rar binary
*.mp4 binary
*.mp3 binary
*.wav binary
*.mov binary
*.avi binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
*.otf binary
*.so binary
*.dll binary
*.dylib binary
*.pyc binary
*.pyo binary
*.pyd binary
*.o binary
*.a binary
*.lib binary
# ── Linguist overrides ─────────────────────────────────────────
# Mark vendor / vendored / generated so they don't pollute stats
vendor/ linguist-vendored
node_modules/ linguist-vendored
__pycache__/ linguist-vendored
*.min.js linguist-vendored
*.min.css linguist-vendored
dist/ linguist-vendored
build/ linguist-vendored
coverage/ linguist-vendored
pnpm-lock.yaml linguist-generated
package-lock.json linguist-generated
yarn.lock linguist-generated
# Markdown documentation
*.md linguist-documentation
docs/ linguist-documentation
# Makefile
Makefile linguist-language=Makefile
*.mk linguist-language=Makefile
# ── Diff & merge ───────────────────────────────────────────────
*.json diff=json
*.lock -diff
package-lock.json -diff
pnpm-lock.yaml -diff
yarn.lock -diff

46
PRODUCT.md Normal file
View file

@ -0,0 +1,46 @@
# WalletPress — Product Charter
**Product:** WalletPress
**Repo:** git.rugmunch.io/RugMunchMedia/walletpress
**Deploy path:** /srv/walletpress/ on Talos
**Container:** walletpress-backend
**Health:** http://127.0.0.1:8010/health
**Status:** Active development
## Problem
WordPress sites and applications need an integrated multi-chain wallet engine, key vault, and x402 micropayment layer without building it from scratch.
## User
- WordPress site operators
- SaaS builders needing wallet generation
- Operators managing chain vaults
## Scope
- Python FastAPI backend
- WordPress plugin (PHP/JS)
- Wallet engine + chain vault
- x402 service for micropayments
- CLI tool for wallet management
- Standalone MCP server
## Anti-scope
- No token scanning (lives in rmi-backend)
- No web scraping (lives in pryscraper)
- No social feed (lives in degenfeed-web)
- No RMI frontend code
## Success criteria
- /health returns ok
- CI green
- All files <500 lines
- WP plugin installable from zip
- MCP tools typed
## Current reality
- Health returns ok
- Best pre-commit hooks in fleet (web3-safety + hallucination-check)
- 11 files >500 lines
- 112 f-string logs, 2 bare except, 1 time.sleep
## Fleet dependencies
- None standalone; can use rmi-backend for risk data

19
TODO.md Normal file
View file

@ -0,0 +1,19 @@
# WalletPress — TODO
## Active
- [ ] Split 11 files >500 lines
- [ ] Convert 112 f-string logs to structured logs
- [ ] Fix 2 bare except clauses
- [ ] Replace 1 time.sleep with asyncio.sleep
## Next
- [ ] Add GitHub Actions CI if missing
- [ ] Add PRODUCT.md and TODO.md to pre-commit protected docs list
- [ ] Define WP plugin release process
## Blocked
- None
## Done
- ARCHITECTURE.md and ROADMAP.md exist
- Pre-commit hooks include web3-safety and hallucination-check