Skip to content

Commit ae1313c

Browse files
fix: security hardening and SCM metadata updates (#1)
- Remove template placeholders from SECURITY.md (security issue) - Replace {{OWNER}}/{{REPO}} with hyperpolymath/eclipse-ssg - Remove PGP section (not configured) - Update project name from template-repo to eclipse-ssg in all SCM files - Add ADR-002 for MCP Hub Integration decision - Add comprehensive roadmap (v0.1 to v1.0) - Update development practices with Deno tooling - Track resolved issues in STATE.scm Co-authored-by: Claude <noreply@anthropic.com>
1 parent 56913e0 commit ae1313c

File tree

4 files changed

+112
-79
lines changed

4 files changed

+112
-79
lines changed

ECOSYSTEM.scm

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
;; SPDX-License-Identifier: AGPL-3.0-or-later
22
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3-
;; ECOSYSTEM.scm — template-repo
3+
;; ECOSYSTEM.scm — eclipse-ssg
44

55
(ecosystem
66
(version "1.0.0")
7-
(name "template-repo")
8-
(type "project")
9-
(purpose "Project in the hyperpolymath ecosystem")
7+
(name "eclipse-ssg")
8+
(type "satellite")
9+
(purpose "Satellite SSG implementation providing MCP protocol interface to 28+ static site generators")
1010

1111
(position-in-ecosystem
12-
"Part of hyperpolymath ecosystem. Follows RSR guidelines.")
12+
"Satellite implementation in the hyperpolymath ecosystem. Synchronizes adapters from poly-ssg-mcp hub.")
1313

1414
(related-projects
1515
(project
@@ -18,11 +18,21 @@
1818
(relationship "hub")
1919
(description "Unified MCP server for 28 SSGs - provides adapter interface")
2020
(differentiation
21-
"poly-ssg-mcp = Hub with all SSG adapters via MCP
22-
This project = Satellite SSG implementation using the hub"))
23-
(project (name "rhodium-standard-repositories")
24-
(url "https://github.com/hyperpolymath/rhodium-standard-repositories")
25-
(relationship "standard")))
21+
"poly-ssg-mcp = Central hub with all SSG adapters via MCP
22+
eclipse-ssg = Satellite implementation consuming the hub adapters"))
23+
(project
24+
(name "rhodium-standard-repositories")
25+
(url "https://github.com/hyperpolymath/rhodium-standard-repositories")
26+
(relationship "standard")
27+
(description "RSR compliance guidelines and templates")))
28+
29+
(what-this-is
30+
"A satellite SSG project that:
31+
- Integrates 28 static site generator adapters from poly-ssg-mcp
32+
- Provides unified CLI interface via MCP protocol
33+
- Supports Rust, Haskell, Elixir, Julia, OCaml, Scheme, and more")
2634

27-
(what-this-is "Project in the hyperpolymath ecosystem")
28-
(what-this-is-not "- NOT exempt from RSR compliance"))
35+
(what-this-is-not
36+
"- NOT the canonical source for SSG adapters (that's poly-ssg-mcp)
37+
- NOT a standalone SSG implementation
38+
- NOT exempt from RSR compliance"))

META.scm

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
;; SPDX-License-Identifier: AGPL-3.0-or-later
22
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3-
;;; META.scm — template-repo
3+
;;; META.scm — eclipse-ssg
44

5-
(define-module (template-repo meta)
5+
(define-module (eclipse-ssg meta)
66
#:export (architecture-decisions development-practices design-rationale))
77

88
(define architecture-decisions
99
'((adr-001
1010
(title . "RSR Compliance")
1111
(status . "accepted")
1212
(date . "2025-12-15")
13-
(context . "Project in the hyperpolymath ecosystem")
13+
(context . "Satellite SSG implementation in the hyperpolymath ecosystem")
1414
(decision . "Follow Rhodium Standard Repository guidelines")
15-
(consequences . ("RSR Gold target" "SHA-pinned actions" "SPDX headers" "Multi-platform CI")))))
15+
(consequences . ("RSR Gold target" "SHA-pinned actions" "SPDX headers" "Multi-platform CI")))
16+
(adr-002
17+
(title . "MCP Hub Integration")
18+
(status . "accepted")
19+
(date . "2025-12-17")
20+
(context . "Need unified interface to multiple SSGs")
21+
(decision . "Integrate with poly-ssg-mcp hub for 28+ SSG adapters")
22+
(consequences . ("Deno/JS adapters" "CLI wrapper pattern" "Hub synchronization")))))
1623

1724
(define development-practices
18-
'((code-style (languages . ("unknown")) (formatter . "auto-detect") (linter . "auto-detect"))
19-
(security (sast . "CodeQL") (credentials . "env vars only"))
25+
'((code-style (languages . ("javascript" "scheme")) (formatter . "deno fmt") (linter . "deno lint"))
26+
(security (sast . "CodeQL") (credentials . "env vars only") (input-validation . "required"))
2027
(testing (coverage-minimum . 70))
2128
(versioning (scheme . "SemVer 2.0.0"))))
2229

2330
(define design-rationale
24-
'((why-rsr "RSR ensures consistency, security, and maintainability.")))
31+
'((why-rsr "RSR ensures consistency, security, and maintainability.")
32+
(why-mcp "MCP protocol provides standardized tool interface for AI agents.")
33+
(why-deno "Deno provides secure-by-default runtime with TypeScript support.")))

SECURITY.md

Lines changed: 9 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,5 @@
11
# Security Policy
22

3-
<!--
4-
============================================================================
5-
TEMPLATE INSTRUCTIONS (delete this block before publishing)
6-
============================================================================
7-
Replace all {{PLACEHOLDER}} values with your information:
8-
{{PROJECT_NAME}} - Your project name
9-
{{OWNER}} - GitHub username or org (e.g., hyperpolymath)
10-
{{REPO}} - Repository name
11-
{{SECURITY_EMAIL}} - Security contact email
12-
{{PGP_FINGERPRINT}} - Your PGP key fingerprint (40 chars, no spaces)
13-
{{PGP_KEY_URL}} - URL to your public PGP key
14-
{{WEBSITE}} - Your website/domain
15-
{{CURRENT_YEAR}} - Current year for copyright
16-
17-
Optional: Remove sections that don't apply (e.g., PGP if you don't use it)
18-
============================================================================
19-
-->
20-
213
We take security seriously. We appreciate your efforts to responsibly disclose vulnerabilities and will make every effort to acknowledge your contributions.
224

235
## Table of Contents
@@ -40,7 +22,7 @@ We take security seriously. We appreciate your efforts to responsibly disclose v
4022

4123
The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature:
4224

43-
1. Navigate to [Report a Vulnerability](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new)
25+
1. Navigate to [Report a Vulnerability](https://github.com/hyperpolymath/eclipse-ssg/security/advisories/new)
4426
2. Click **"Report a vulnerability"**
4527
3. Complete the form with as much detail as possible
4628
4. Submit — we'll receive a private notification
@@ -52,27 +34,6 @@ This method ensures:
5234
- Coordinated disclosure tooling
5335
- Automatic credit when the advisory is published
5436

55-
### Alternative: Encrypted Email
56-
57-
If you cannot use GitHub Security Advisories, you may email us directly:
58-
59-
| | |
60-
|---|---|
61-
| **Email** | {{SECURITY_EMAIL}} |
62-
| **PGP Key** | [Download Public Key]({{PGP_KEY_URL}}) |
63-
| **Fingerprint** | `{{PGP_FINGERPRINT}}` |
64-
65-
```bash
66-
# Import our PGP key
67-
curl -sSL {{PGP_KEY_URL}} | gpg --import
68-
69-
# Verify fingerprint
70-
gpg --fingerprint {{SECURITY_EMAIL}}
71-
72-
# Encrypt your report
73-
gpg --armor --encrypt --recipient {{SECURITY_EMAIL}} report.txt
74-
```
75-
7637
> **⚠️ Important:** Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media.
7738
7839
---
@@ -203,7 +164,7 @@ If we cannot reach agreement on disclosure timing, we default to 90 days from yo
203164

204165
The following are within scope for security research:
205166

206-
- This repository (`{{OWNER}}/{{REPO}}`) and all its code
167+
- This repository (`hyperpolymath/eclipse-ssg`) and all its code
207168
- Official releases and packages published from this repository
208169
- Documentation that could lead to security issues
209170
- Build and deployment configurations in this repository
@@ -322,7 +283,7 @@ Recognition includes:
322283
To stay informed about security updates:
323284

324285
- **Watch this repository**: Click "Watch" → "Custom" → Select "Security alerts"
325-
- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories)
286+
- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/hyperpolymath/eclipse-ssg/security/advisories)
326287
- **Release notes**: Security fixes noted in [CHANGELOG](CHANGELOG.md)
327288

328289
### Update Policy
@@ -335,8 +296,6 @@ To stay informed about security updates:
335296

336297
### Supported Versions
337298

338-
<!-- Adjust this table to match your actual version support policy -->
339-
340299
| Version | Supported | Notes |
341300
|---------|-----------|-------|
342301
| `main` branch | ✅ Yes | Latest development |
@@ -348,7 +307,7 @@ To stay informed about security updates:
348307

349308
## Security Best Practices
350309

351-
When using {{PROJECT_NAME}}, we recommend:
310+
When using eclipse-ssg, we recommend:
352311

353312
### General
354313

@@ -370,8 +329,7 @@ When using {{PROJECT_NAME}}, we recommend:
370329

371330
## Additional Resources
372331

373-
- [Our PGP Public Key]({{PGP_KEY_URL}})
374-
- [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories)
332+
- [Security Advisories](https://github.com/hyperpolymath/eclipse-ssg/security/advisories)
375333
- [Changelog](CHANGELOG.md)
376334
- [Contributing Guidelines](CONTRIBUTING.md)
377335
- [CVE Database](https://cve.mitre.org/)
@@ -383,8 +341,8 @@ When using {{PROJECT_NAME}}, we recommend:
383341

384342
| Purpose | Contact |
385343
|---------|---------|
386-
| **Security issues** | [Report via GitHub](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) or {{SECURITY_EMAIL}} |
387-
| **General questions** | [GitHub Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) |
344+
| **Security issues** | [Report via GitHub](https://github.com/hyperpolymath/eclipse-ssg/security/advisories/new) |
345+
| **General questions** | [GitHub Discussions](https://github.com/hyperpolymath/eclipse-ssg/discussions) |
388346
| **Other enquiries** | See [README](README.md) for contact information |
389347

390348
---
@@ -399,8 +357,8 @@ This security policy may be updated from time to time. Significant changes will
399357

400358
---
401359

402-
*Thank you for helping keep {{PROJECT_NAME}} and its users safe.* 🛡️
360+
*Thank you for helping keep eclipse-ssg and its users safe.* 🛡️
403361

404362
---
405363

406-
<sub>Last updated: {{CURRENT_YEAR}} · Policy version: 1.0.0</sub>
364+
<sub>Last updated: 2025 · Policy version: 1.0.0</sub>

STATE.scm

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,78 @@
1-
;;; STATE.scm — template-repo
21
;; SPDX-License-Identifier: AGPL-3.0-or-later
32
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3+
;;; STATE.scm — eclipse-ssg
44

55
(define metadata
6-
'((version . "0.1.0") (updated . "2025-12-15") (project . "template-repo")))
6+
'((version . "0.2.0") (updated . "2025-12-17") (project . "eclipse-ssg")))
77

88
(define current-position
9-
'((phase . "v0.1 - Initial Setup")
10-
(overall-completion . 25)
11-
(components ((rsr-compliance ((status . "complete") (completion . 100)))))))
9+
'((phase . "v0.2 - Integration Complete")
10+
(overall-completion . 40)
11+
(components
12+
((rsr-compliance ((status . "complete") (completion . 100)))
13+
(hub-integration ((status . "complete") (completion . 100)))
14+
(security-hardening ((status . "complete") (completion . 100)))
15+
(testing ((status . "not-started") (completion . 0)))
16+
(documentation ((status . "in-progress") (completion . 50)))))))
1217

13-
(define blockers-and-issues '((critical ()) (high-priority ())))
18+
(define blockers-and-issues
19+
'((critical ())
20+
(high-priority ())
21+
(resolved
22+
(("SECURITY.md placeholders" . "2025-12-17")
23+
("SCM file naming" . "2025-12-17")))))
1424

1525
(define critical-next-actions
16-
'((immediate (("Verify CI/CD" . high))) (this-week (("Expand tests" . medium)))))
26+
'((immediate
27+
(("Add adapter tests" . high)
28+
("Create deno.json config" . medium)))
29+
(this-week
30+
(("Add README with usage examples" . medium)
31+
("Set up CI for adapter validation" . medium)))))
32+
33+
(define roadmap
34+
'((v0.1 (name . "Initial Setup")
35+
(status . "complete")
36+
(items . ("RSR compliance" "Repository structure" "CI/CD setup")))
37+
(v0.2 (name . "Hub Integration")
38+
(status . "complete")
39+
(items . ("Sync 28 SSG adapters from poly-ssg-mcp"
40+
"Security policy configuration"
41+
"SCM metadata updates")))
42+
(v0.3 (name . "Testing & Validation")
43+
(status . "planned")
44+
(items . ("Unit tests for adapter loading"
45+
"Integration tests with mock SSGs"
46+
"CI pipeline for adapter validation"
47+
"Coverage reporting")))
48+
(v0.4 (name . "Documentation & Examples")
49+
(status . "planned")
50+
(items . ("README with quick start guide"
51+
"Usage examples for each adapter"
52+
"API documentation"
53+
"Troubleshooting guide")))
54+
(v0.5 (name . "Production Readiness")
55+
(status . "planned")
56+
(items . ("Input validation for all adapters"
57+
"Error handling improvements"
58+
"Performance benchmarks"
59+
"Release automation")))
60+
(v1.0 (name . "Stable Release")
61+
(status . "planned")
62+
(items . ("Full test coverage (70%+)"
63+
"Complete documentation"
64+
"npm/deno package publishing"
65+
"Security audit")))))
1766

1867
(define session-history
19-
'((snapshots ((date . "2025-12-15") (session . "initial") (notes . "SCM files added")))))
68+
'((snapshots
69+
((date . "2025-12-15") (session . "initial") (notes . "SCM files added"))
70+
((date . "2025-12-17") (session . "hub-integration") (notes . "28 SSG adapters synced from poly-ssg-mcp"))
71+
((date . "2025-12-17") (session . "security-review") (notes . "Fixed SECURITY.md, updated SCM files")))))
2072

2173
(define state-summary
22-
'((project . "template-repo") (completion . 25) (blockers . 0) (updated . "2025-12-15")))
74+
'((project . "eclipse-ssg")
75+
(completion . 40)
76+
(blockers . 0)
77+
(adapters . 28)
78+
(updated . "2025-12-17")))

0 commit comments

Comments
 (0)