Fourth Generation Standards

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. 1

    Fork the repository — fork ihoward/4thgen_standards on GitHub.

  2. 2

    Copy the template — copy contributions/FGC-template.md to contributions/FGC-<next-number>.md. Use the next sequential number.

  3. 3

    Fill in the template — complete all required fields describing your proposed change.

  4. 4

    Create practice files — if proposing a new practice, create the concept and version YAML files (see formats below).

  5. 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

7 days

Acknowledgment

Maintainers will acknowledge your contribution within 7 days of submission.

When ready

Candidate status

Reached when the contribution is complete, uncontested, and reviewed by a maintainer.

+14 days

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.