Thank you for your interest in contributing to the LCB Website project! This document provides guidelines for contributing to this hardened WordPress deployment.
Before contributing, ensure you have the following installed:
- Git - Version control
- ASDF - Runtime version management (https://asdf-vm.com)
- Deno - JavaScript/TypeScript runtime
- Docker and Docker Compose - Container runtime (for development)
- Just - Command runner (https://just.systems)
- Alire - Ada package manager (for Cerro Torre)
- GNAT/Ada compiler - For building Cerro Torre manifests
- Rust - For Vörðr and Svalinn components
-
Clone the repository:
git clone https://github.com/hyperpolymath/lcb-website.git cd lcb-website -
Install ASDF plugins (if using ASDF):
just setup-asdf just install-tools
-
Copy environment variables:
cp .env.example .env # Edit .env with your configuration -
Check project status:
just status
Start the development stack:
just devThis starts WordPress, MariaDB, and Varnish using Docker Compose. Access:
- WordPress: http://localhost:8080
- Varnish: http://localhost:8081
Run all validation checks:
just validateThis runs:
- RSR compliance checks
- .well-known file validation
- Security scanning
If you have Cerro Torre installed:
just ct-pack # Build the manifest
just ct-verify # Verify the manifestThis project follows the hyperpolymath language standards:
Allowed:
- ReScript (primary application code)
- Rust (systems code, performance-critical)
- Deno (runtime, replacing Node.js)
- Elixir/Gleam (backend services)
- Bash/POSIX shell (minimal scripts only)
- Ada/SPARK (Cerro Torre manifests)
Not Allowed:
- TypeScript (use ReScript instead)
- Node.js/npm (use Deno instead)
- Go (use Rust instead)
- Python (use Julia/Rust/ReScript instead)
All source files must include SPDX license identifier:
# SPDX-License-Identifier: PMPL-1.0-or-later
Follow conventional commit format:
type(scope): brief description
Longer description if needed.
Co-Authored-By: Name <email>
Types: feat, fix, docs, style, refactor, test, chore
Report security issues to: security@hyperpolymath.org
See .well-known/security.txt for full security policy.
Before submitting:
- No hardcoded secrets or credentials
- All dependencies are pinned to specific versions
- SPDX headers present in all files
- No personally identifiable information (PII)
- Follows consent-aware HTTP requirements
- Start the development stack:
just dev - Test WordPress functionality
- Verify Varnish caching: Check
X-Cacheheaders - Test consent enforcement: Send requests without AIBDP headers
Run security scans:
just security-check- Fork the repository
- Create a branch for your feature/fix:
git checkout -b feature/my-feature
- Make your changes following code standards
- Run validation:
just validate
- Commit your changes with clear commit messages
- Push to your fork:
git push origin feature/my-feature
- Open a Pull Request on GitHub
- All validation checks pass
- No merge conflicts with main branch
- Clear description of changes
- Related issue linked (if applicable)
- Documentation updated (if needed)
- STATE.a2ml updated (if significant changes)
Documentation lives in:
docs/*.adoc- Component integration guidesREADME.md- Project overviewROADMAP.adoc- Project roadmap.machine_readable/6a2/- Machine-readable metadata
When adding new integrations or features, update:
- Relevant
docs/*.adocfile README.md(if user-facing)STATE.a2mlin.machine_readable/6a2/
- Use AsciiDoc for technical documentation
- Use Markdown for user-facing docs
- Include code examples where applicable
- Reference related projects/components
lcb-website/
├── .github/workflows/ # CI/CD workflows
├── .machine_readable/6a2/ # Machine-readable metadata
├── .well-known/ # Consent and security policies
├── docs/ # Integration documentation
├── infra/ # Infrastructure manifests
│ └── wordpress.ctp # Cerro Torre manifest
├── services/ # Service configurations
│ ├── varnish/ # Varnish VCL files
│ └── mariadb/ # MariaDB configuration
├── docker-compose.yml # Development environment
├── selur-compose.yml # Production verified stack (stapeln)
└── Justfile # Command automation
This project integrates with:
- svalinn - Verified container gateway
- cerro-torre - Ada/SPARK manifest builder
- vordr - Formally verified runtime
- wp-sinople-theme - WordPress theme (WASM/ReScript)
- php-aegis - PHP security library
- consent-aware-http - AIBDP protocol implementation
These are separate repositories that need to be cloned to ../ relative to this repo.
- Open an issue on GitHub
- Read the documentation in
docs/ - Check
justfilefor available commands (just --list) - Review
.machine_readable/6a2/STATE.a2mlfor project status
This project is licensed under PMPL-1.0-or-later (Palimpsest-MPL License).
See LEGAL.txt for full license text.
Thank you for contributing to a more secure and consent-aware web!