Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 11 additions & 31 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,8 @@
# Code of Conduct

<!--
============================================================================
TEMPLATE INSTRUCTIONS (delete this block before publishing)
============================================================================
Replace all {{PLACEHOLDER}} values:
{{PROJECT_NAME}} - Your project name
{{OWNER}} - GitHub/GitLab username or org
{{REPO}} - Repository name
{{CONDUCT_EMAIL}} - Email for conduct reports
{{CONDUCT_TEAM}} - Name of conduct team/committee
{{RESPONSE_TIME}} - Initial response SLA (e.g., 48 hours)
{{CURRENT_YEAR}} - Current year

Review and customise:
- Adjust enforcement ladder for your community size
- Add/remove examples based on your context
- Ensure contact methods work for your team
============================================================================
-->

## Our Pledge

We as members, contributors, and leaders pledge to make participation in {{PROJECT_NAME}} a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in Shift SSG a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

Expand Down Expand Up @@ -136,7 +116,7 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

| Method | Details | Best For |
|--------|---------|----------|
| **Email** | {{CONDUCT_EMAIL}} | Detailed reports, sensitive matters |
| **Email** | conduct@hyperpolymath.dev | Detailed reports, sensitive matters |
| **Private Message** | Contact any maintainer directly | Quick questions, minor issues |
| **Anonymous Form** | [Link to form if available] | When you need anonymity |

Expand All @@ -152,8 +132,8 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

**What Happens Next**

1. You will receive acknowledgment within **{{RESPONSE_TIME}}**
2. The {{CONDUCT_TEAM}} will review the report
1. You will receive acknowledgment within **48 hours**
2. The Code of Conduct Team will review the report
3. We may ask for additional information
4. We will determine appropriate action
5. We will inform you of the outcome (respecting others' privacy)
Expand All @@ -169,7 +149,7 @@ All reports will be handled with discretion:

### Conflicts of Interest

If a {{CONDUCT_TEAM}} member is involved in an incident:
If a Code of Conduct Team member is involved in an incident:

- They will recuse themselves from the process
- Another maintainer or external party will handle the report
Expand All @@ -179,7 +159,7 @@ If a {{CONDUCT_TEAM}} member is involved in an incident:

## Enforcement Guidelines

The {{CONDUCT_TEAM}} will follow these guidelines in determining consequences:
The Code of Conduct Team will follow these guidelines in determining consequences:

### 1. Correction

Expand Down Expand Up @@ -231,13 +211,13 @@ For contributors with elevated access (Perimeter 2 or 1):
If you believe an enforcement decision was made in error:

1. **Wait 7 days** after the decision (cooling-off period)
2. **Email** {{CONDUCT_EMAIL}} with subject line "Appeal: [Original Report ID]"
2. **Email** conduct@hyperpolymath.dev with subject line "Appeal: [Original Report ID]"
3. **Explain** why you believe the decision should be reconsidered
4. **Provide** any new information not previously available

**Appeals Process**

- Appeals are reviewed by a different {{CONDUCT_TEAM}} member than the original
- Appeals are reviewed by a different Code of Conduct Team member than the original
- You will receive a response within 14 days
- The appeals decision is final
- You may only appeal once per incident
Expand Down Expand Up @@ -310,8 +290,8 @@ We thank these communities for their leadership in creating welcoming spaces.

If you have questions about this Code of Conduct:

- Open a [Discussion](https://{{FORGE}}/{{OWNER}}/{{REPO}}/discussions) (for general questions)
- Email {{CONDUCT_EMAIL}} (for private questions)
- Open a [Discussion](https://github.com/hyperpolymath/shift-ssg/discussions) (for general questions)
- Email conduct@hyperpolymath.dev (for private questions)
- Contact any maintainer directly

---
Expand All @@ -324,4 +304,4 @@ We're all here because we care about this project. Let's make it a place where e

---

<sub>Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1</sub>
<sub>Last updated: 2025 · Based on Contributor Covenant 2.1</sub>
118 changes: 79 additions & 39 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,43 @@
# Contributing to Shift SSG

Thank you for your interest in contributing to Shift SSG! This document provides guidelines and information for contributors.

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [Getting Started](#getting-started)
- [How to Contribute](#how-to-contribute)
- [Development Workflow](#development-workflow)

---

## Code of Conduct

This project follows the [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

---

## Getting Started

### Prerequisites

- Git
- Deno (for running adapters)
- Node.js (optional, for npm ecosystem tools)

### Setup

```bash
# Clone the repository
git clone https://{{FORGE}}/{{OWNER}}/{{REPO}}.git
cd {{REPO}}
git clone https://github.com/hyperpolymath/shift-ssg.git
cd shift-ssg

# Using Nix (recommended for reproducibility)
nix develop

# Or using toolbox/distrobox
toolbox create {{REPO}}-dev
toolbox enter {{REPO}}-dev
toolbox create shift-ssg-dev
toolbox enter shift-ssg-dev
# Install dependencies manually

# Verify setup
Expand All @@ -17,32 +47,21 @@ just test # Run test suite

### Repository Structure
```
{{REPO}}/
├── src/ # Source code (Perimeter 1-2)
├── lib/ # Library code (Perimeter 1-2)
├── extensions/ # Extensions (Perimeter 2)
├── plugins/ # Plugins (Perimeter 2)
├── tools/ # Tooling (Perimeter 2)
├── docs/ # Documentation (Perimeter 3)
│ ├── architecture/ # ADRs, specs (Perimeter 2)
│ └── proposals/ # RFCs (Perimeter 3)
├── examples/ # Examples (Perimeter 3)
├── spec/ # Spec tests (Perimeter 3)
├── tests/ # Test suite (Perimeter 2-3)
├── .well-known/ # Protocol files (Perimeter 1-3)
├── .github/ # GitHub config (Perimeter 1)
shift-ssg/
├── adapters/ # SSG adapter implementations
├── docs/ # Documentation
├── .github/ # GitHub config
│ ├── ISSUE_TEMPLATE/
│ └── workflows/
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md # This file
├── GOVERNANCE.md
├── LICENSE
├── MAINTAINERS.md
├── LICENSE.txt
├── README.adoc
├── SECURITY.md
├── flake.nix # Nix flake (Perimeter 1)
└── justfile # Task runner (Perimeter 1)
├── META.scm # Architecture metadata
├── STATE.scm # Project state tracking
└── ECOSYSTEM.scm # Ecosystem relationships
```

---
Expand All @@ -53,8 +72,8 @@ just test # Run test suite

**Before reporting**:
1. Search existing issues
2. Check if it's already fixed in `{{MAIN_BRANCH}}`
3. Determine which perimeter the bug affects
2. Check if it's already fixed in `main`
3. Determine which component the bug affects

**When reporting**:

Expand All @@ -69,9 +88,8 @@ Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include:
### Suggesting Features

**Before suggesting**:
1. Check the [roadmap](ROADMAP.md) if available
2. Search existing issues and discussions
3. Consider which perimeter the feature belongs to
1. Search existing issues and discussions
2. Consider how the feature fits with the project

**When suggesting**:

Expand All @@ -80,29 +98,27 @@ Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) an
- Problem statement (what pain point does this solve?)
- Proposed solution
- Alternatives considered
- Which perimeter this affects

### Your First Contribution

Look for issues labelled:

- [`good first issue`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/help%20wanted) — Community help needed
- [`documentation`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/documentation) — Docs improvements
- [`perimeter-3`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/perimeter-3) — Community sandbox scope
- [`good first issue`](https://github.com/hyperpolymath/shift-ssg/labels/good%20first%20issue) — Simple tasks
- [`help wanted`](https://github.com/hyperpolymath/shift-ssg/labels/help%20wanted) — Community help needed
- [`documentation`](https://github.com/hyperpolymath/shift-ssg/labels/documentation) — Docs improvements

---

## Development Workflow

### Branch Naming
```
docs/short-description # Documentation (P3)
test/what-added # Test additions (P3)
feat/short-description # New features (P2)
fix/issue-number-description # Bug fixes (P2)
refactor/what-changed # Code improvements (P2)
security/what-fixed # Security fixes (P1-2)
docs/short-description # Documentation
test/what-added # Test additions
feat/short-description # New features
fix/issue-number-description # Bug fixes
refactor/what-changed # Code improvements
security/what-fixed # Security fixes
```

### Commit Messages
Expand All @@ -114,3 +130,27 @@ We follow [Conventional Commits](https://www.conventionalcommits.org/):
[optional body]

[optional footer]
```

**Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `security`

### Pull Request Process

1. Fork the repository
2. Create your feature branch (`git checkout -b feat/amazing-feature`)
3. Make your changes
4. Ensure tests pass
5. Commit your changes using conventional commits
6. Push to your branch (`git push origin feat/amazing-feature`)
7. Open a Pull Request

---

## Questions?

- Open a [Discussion](https://github.com/hyperpolymath/shift-ssg/discussions)
- Check the [README](README.adoc)

---

<sub>Last updated: 2025</sub>
46 changes: 34 additions & 12 deletions ECOSYSTEM.scm
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
;; ECOSYSTEM.scm — template-repo
;; ECOSYSTEM.scm — shift-ssg

(ecosystem
(version "1.0.0")
(name "template-repo")
(type "project")
(purpose "Project in the hyperpolymath ecosystem")
(name "shift-ssg")
(type "satellite-ssg")
(purpose "Satellite SSG implementation providing direct adapter access for static site generation")

(position-in-ecosystem
"Part of hyperpolymath ecosystem. Follows RSR guidelines.")
"Shift SSG is a satellite implementation in the hyperpolymath ecosystem.
It provides direct access to 28 SSG adapters for static site generation.
Follows RSR (Rhodium Standard Repository) guidelines for compliance.")

(related-projects
(project
Expand All @@ -18,11 +20,31 @@
(relationship "hub")
(description "Unified MCP server for 28 SSGs - provides adapter interface")
(differentiation
"poly-ssg-mcp = Hub with all SSG adapters via MCP
This project = Satellite SSG implementation using the hub"))
(project (name "rhodium-standard-repositories")
(url "https://github.com/hyperpolymath/rhodium-standard-repositories")
(relationship "standard")))
"poly-ssg-mcp = Hub with all SSG adapters via MCP protocol
shift-ssg = Satellite implementation for direct adapter usage"))
(project
(name "rhodium-standard-repositories")
(url "https://github.com/hyperpolymath/rhodium-standard-repositories")
(relationship "standard")
(description "RSR compliance baseline for repository structure and security")))

(adapters
(count 28)
(languages ("Rust" "Haskell" "Elixir" "Julia" "Clojure" "Racket" "OCaml" "F#" "Scala" "Kotlin" "Erlang" "Nim"))
(categories
("functional" . ("babashka" "coleslaw" "pollen" "frog" "perun" "cryogen"))
("statically-typed" . ("cobalt" "mdbook" "fornax" "laika" "orchid" "zola"))
("elixir-ecosystem" . ("nimble-publisher" "serum" "tableau"))
("scientific" . ("documenter" "franklin" "ema" "hakyll"))))

(what-this-is
"Shift SSG is a satellite static site generator implementation that:
- Provides 28 SSG adapters for various programming languages
- Integrates with the poly-ssg-mcp hub ecosystem
- Follows RSR compliance for security and maintainability
- Supports Deno runtime for adapter execution")

(what-this-is "Project in the hyperpolymath ecosystem")
(what-this-is-not "- NOT exempt from RSR compliance"))
(what-this-is-not
"- NOT a standalone SSG (uses existing SSG tools via adapters)
- NOT a replacement for poly-ssg-mcp (complements it)
- NOT exempt from RSR compliance requirements"))
Loading
Loading