Skip to content

Commit aba16aa

Browse files
docs: address PR review feedback from Zahnentferner
- brand/Brand.md: logo is a 4D hypercube (tesseract) projection, not an octahedron. - agent.md: "vendored" -> "vendor". - Contributors.md: drop the leftover TODO row. - SECURITY.md: Supported Versions now reflects the tag-triggered release workflow (SemVer vX.Y.Z tags, pyproject.toml version) instead of claiming no releases exist. Also updates docs/BestPracticesChecklist.md's Change Control section to Met now that tagged SemVer releases with auto-generated release notes exist. Score: 39/49 (80%).
1 parent c662a36 commit aba16aa

5 files changed

Lines changed: 21 additions & 16 deletions

File tree

Contributors.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ are made under the terms of the [Developer Certificate of Origin](DCO.md).
1313
| -------------------------------- | ------------------ | ------------------ | ---------------------------- |
1414
| Bruno Woltzenlogel Paleo | @Zahnentferner | @b.wp | zahnentferner@gmail.com |
1515
| Siddhant | @siddhant | @siddhantcookie | siddhantkk27@gmail.com |
16-
| TODO | TODO | TODO | TODO |

SECURITY.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
## Supported Versions
44

5-
MiniChain does not yet have tagged releases or a formal versioning scheme. Security fixes are applied to the latest commit on `main`, which is the only version supported.
5+
MiniChain is released via tagged versions (`vX.Y.Z`, [SemVer](https://semver.org)), built and published automatically by [.github/workflows/release.yml](.github/workflows/release.yml) whenever a matching tag is pushed. While the project is pre-1.0 (currently `0.1.0-beta`), only the latest tagged release and `main` receive security fixes — older tags are not backported to.
6+
7+
| Version | Supported |
8+
| ---------------- | -------------------- |
9+
| Latest tagged release ||
10+
| `main` (unreleased) ||
11+
| Older tagged releases ||
612

713
## Reporting a Vulnerability
814

@@ -36,7 +42,7 @@ Given MiniChain's goals — education, research, and innovation on a minimal blo
3642
- P2P protocol issues that allow a peer to crash, partition, or deny service to a node (see `minichain/p2p.py`).
3743
- JSON-RPC issues that allow unauthorized access to node data or funds (see `minichain/rpc.py`).
3844

39-
Out of scope: issues in vendored third-party binaries (`bore_bin/`, `bore.zip`) should be reported upstream to their respective projects.
45+
Out of scope: issues in vendor third-party binaries (`bore_bin/`, `bore.zip`) should be reported upstream to their respective projects.
4046

4147
## Questions
4248

agent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Python 3.10+, no web framework. Core libs: `pynacl` (Ed25519 signing), `trie` (M
2727
## Boundaries
2828

2929
- Never modify `genesis.json` or files under a node's `--datadir` (persisted chain/state data) as part of a code change.
30-
- `bore_bin/` and `bore.zip` are vendored binaries — do not edit or regenerate them by hand.
30+
- `bore_bin/` and `bore.zip` are vendor binaries — do not edit or regenerate them by hand.
3131
- Don't hand-edit the coverage badge/table in `README.md`; it's generated by CI.
3232

3333
## Git Workflow

brand/Brand.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ MiniChain is a minimal, fully functional blockchain implemented in Python, built
44

55
## Logo
66

7-
MiniChain's mark is an octahedron-style wireframe: eight triangular edges radiating from a central point, each vertex marked with a glowing node. It's meant to evoke a network graph — nodes connected by edges — rather than a literal chain, which fits a project about distributed state rather than links in a chain.
7+
MiniChain's mark is a 4D hypercube (tesseract) projected onto 2 dimensions: eight overlapping edge-paths radiating from a central point, each vertex marked with a glowing node. It's meant to evoke a network graph — nodes connected by edges — rather than a literal chain, which fits a project about distributed state rather than links in a chain.
88

99
- [`logo.svg`](logo.svg) — the MiniChain mark, 330×330, transparent background. Use this as the primary logo wherever MiniChain is referenced on its own.
1010
- [`org-logo.svg`](org-logo.svg) — the Stability Nexus organization mark, 500×500. Use alongside the MiniChain logo when representing the org/project pairing (as in the [README](../README.md) header), never as a substitute for it.
@@ -13,7 +13,7 @@ MiniChain's mark is an octahedron-style wireframe: eight triangular edges radiat
1313

1414
- Keep clear space around the logo equal to at least the radius of one vertex node.
1515
- Do not recolor the gradient — it is the identifying feature of the mark.
16-
- Do not stretch or skew; the mark is designed as a regular octahedron and should scale uniformly.
16+
- Do not stretch or skew; the projection's proportions are fixed and should scale uniformly.
1717
- Minimum display size: 32px, below which the vertex nodes become illegible.
1818

1919
## Favicons and Icons

docs/BestPracticesChecklist.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
| Category | Met | Total | Status |
2929
|--------------------|-----|-------|--------|
3030
| Basics | 8 | 8 | 🟢 |
31-
| Change Control | 3 | 6 | 🟡 |
31+
| Change Control | 6 | 6 | 🟢 |
3232
| Reporting | 6 | 8 | 🟡 |
3333
| Quality | 7 | 11 | 🟡 |
3434
| Security | 9 | 9 | 🟢 |
3535
| Analysis | 3 | 7 | 🔴 |
36-
| **Total** | **36** | **49** | **73%** |
36+
| **Total** | **39** | **49** | **80%** |
3737
---
3838

3939
## 🏗️ Basics
@@ -77,19 +77,19 @@
7777

7878
### Version Numbering
7979

80-
- [ ] 🔴 **version_unique** — Each release has a unique version identifier (e.g., v1.0.0).
81-
- *Evidence URL:* None — no tagged releases exist yet (`git tag` is empty).
80+
- [x] 🔴 **version_unique** — Each release has a unique version identifier (e.g., v1.0.0).
81+
- *Evidence URL:* [pyproject.toml](../pyproject.toml) (`version = "0.1.0-beta"`), released via `vX.Y.Z` git tags per [.github/workflows/release.yml](../.github/workflows/release.yml).
8282

83-
- [ ] 🔵 **version_semver** — Project uses [SemVer](https://semver.org) or [CalVer](https://calver.org/) format. *(SUGGESTED)*
84-
- *Note:* No versioning scheme is in use yet; no `__version__`/package version found in the repo.
83+
- [x] 🔵 **version_semver** — Project uses [SemVer](https://semver.org) or [CalVer](https://calver.org/) format. *(SUGGESTED)*
84+
- *Note:* Tags match `v[0-9]+.[0-9]+.[0-9]+*` (see [.github/workflows/release.yml](../.github/workflows/release.yml) trigger), SemVer-style.
8585

86-
- [ ] 🔵 **version_tags** — Releases are tagged in the VCS (e.g., `git tag v1.0.0`). *(SUGGESTED)*
87-
- *Evidence URL:* Nonerepository has no tags.
86+
- [x] 🔵 **version_tags** — Releases are tagged in the VCS (e.g., `git tag v1.0.0`). *(SUGGESTED)*
87+
- *Evidence URL:* [.github/workflows/release.yml](../.github/workflows/release.yml)release builds are tag-triggered.
8888

8989
### Release Notes
9090

9191
- [x] 🔴 **release_notes** — Each release includes human-readable release notes summarizing major changes. Raw `git log` output is NOT acceptable.
92-
- *Evidence URL:* `[x]` N/A*Justification: project has not cut any releases yet; it is developed via continuous commits to `main`. Revisit once the first tagged release is planned.*
92+
- *Evidence URL:* [.github/workflows/release.yml](../.github/workflows/release.yml)`generate_release_notes: true` on the GitHub Release step.
9393

9494
- [x] 🔴 **release_notes_vulns** — Release notes identify every publicly known vulnerability (with CVE) fixed in that release.
9595
- *Evidence URL:* `[x]` N/A — *Justification: no releases exist yet, and no publicly known CVEs affect the project.*
@@ -255,7 +255,7 @@
255255
- For `dynamic_analysis`: consider adversarial input testing as a form of dynamic analysis.
256256

257257
### MiniChain-Specific Notes
258-
- Biggest open gaps found by this pass: no linter in CI (blocks all three `warnings_*` items), and no static/dynamic analysis tooling (blocks all of Analysis except the N/A items). Tagging a first release would also unlock the Change Control items. [SECURITY.md](../SECURITY.md) was added, closing the `vulnerability_report_process`/`vulnerability_report_private` gaps.
258+
- Biggest open gaps found by this pass: no linter in CI (blocks all three `warnings_*` items), and no static/dynamic analysis tooling (blocks all of Analysis except the N/A items). [SECURITY.md](../SECURITY.md) was added, closing the `vulnerability_report_process`/`vulnerability_report_private` gaps, and the tag-triggered [release workflow](../.github/workflows/release.yml) closes the Change Control items.
259259
- `report_responses` / `enhancement_responses` need a manual pass over GitHub Issues history — not derivable from the repo contents.
260260

261261
---

0 commit comments

Comments
 (0)