How to contribute
4GS is governed through an open contribution process. Anyone can propose new practices, revise existing ones, or change taxonomy structure.
What you can propose
New practice
A characteristic that should be required of a fourth generation standard, which is not yet in the specification.
Practice revision
Updated criteria for an existing practice. Creates a new version — the concept identity stays the same.
Taxonomy change
A new domain, or reclassification of existing practices within the domain hierarchy.
Documentation improvement
Corrections or additions to the framework documentation, methodology, or adoption guide.
How to submit a contribution
- 1
Fork the repository — fork ihoward/4thgen_standards on GitHub.
- 2
Copy the template — copy
contributions/FGC-template.mdtocontributions/FGC-<next-number>.md. Use the next sequential number. - 3
Fill in the template — complete all required fields describing your proposed change.
- 4
Create practice files — if proposing a new practice, create the concept and version YAML files (see formats below).
- 5
Open a pull request — title format:
[FGC-XXXXX] Brief description.
Practice file formats
Concept file
practices/concepts/FGP-xxxxxx.yaml — one file per practice concept.
id: FGP-xxxxxx
normalized_name: "lower case whitespace normalised name without punctuation"
title: Human-readable title
description: |
What this practice means and why it matters
for fourth generation standards. Version file
practices/versions/FGP-xxxxxx-v1.yaml — one file per practice version.
id: FGP-xxxxxx-v1
concept_id: FGP-xxxxxx
compliance_level: foundational # foundational | extended | full
criteria:
required: |
What a standard must demonstrably implement.
Observable and verifiable, not aspirational.
recommended: |
Additional implementation details that strengthen
compliance but are not required.
rationale: |
Why this practice is necessary for fourth generation
status. What problem it solves.
citations:
supporting:
- >
Author, A. (Year). Title. Journal/Source.
https://doi.org/...
dissenting: [] Identifier generation
Practice concept IDs are deterministic. Two independent contributors who describe the same practice arrive at the same identifier without coordination.
import hashlib, base64
def make_id(normalized_name):
h = hashlib.sha256(normalized_name.encode()).digest()
b32 = base64.b32encode(h).decode().lower().rstrip('=')
return f'FGP-{b32[:6]}'
The normalized_name is the lower-case, whitespace-normalised (single spaces),
punctuation-stripped version of the concept title.
Review timeline
Acknowledgment
Maintainers will acknowledge your contribution within 7 days of submission.
Candidate status
Reached when the contribution is complete, uncontested, and reviewed by a maintainer.
Standard status
Reached 14 days after Candidate with no blocking objections. The pull request is merged.
Ready to contribute?
Fork the repository and open a pull request. All contributions are discussed publicly and governed by the 4GS governance process.