Skip to content

Public project readiness: OpenSSF integrations and approachable documentation #928

Description

@Brad-Edwards

Outcome

Make RAES ready for a broader public audience by adding honest OpenSSF project-health integrations, establishing a hard publication boundary between public and developer documentation, rewriting the README and public documentation as approachable user-facing material, and standardizing the repository community documents.

This is one coding-agent unit of work. Complete all sections together and follow the resulting PR through green CI and documentation publication checks.

Context

RAES is the Reproducible Agentic Environments System, formerly the Agentic Cyber Environments System (ACES). It originated from the Heron AI Security Fellowship agent-environments work, including RFCs and a draft open-source scenario definition language, and was subsequently broadened and renamed to reflect uses beyond cyber environments.

The public explanation should present RAES as a system for defining reproducible environments and the agents or other participants within them. AI security and CTFs are strong examples, but the framing must also remain legible for uses such as disaster-recovery environment capture, product testing, software-configuration evaluation, and research. These are examples, not an exhaustive market narrative or claims that every workflow already has a production backend.

Current problems

  • OpenSSF Scorecard is not integrated; Add OpenSSF Scorecard workflow and README badge #839 contains the earlier narrow request.
  • The project is not enrolled and represented honestly on bestpractices.dev.
  • The Read the Docs configuration points Sphinx at the entire docs/ workspace.
  • The public navigation explicitly includes project notes, migrations, research working files, audits, and issue/preflight documents.
  • Sphinx currently has no meaningful public-source exclusion boundary.
  • The README and several entry pages read like internal architecture/governance documents: they front-load caveats, use repeated abstract language such as “surface,” “boundary,” “authority,” and “bounded,” and do not quickly help a new reader understand or try RAES.
  • The existing community documents need a consistency and completeness pass against an established open-source project template.

Work

1. OpenSSF Scorecard and Best Practices

  • Add the official OpenSSF Scorecard GitHub Actions integration using SHA-pinned actions, least-privilege job permissions, SARIF/code-scanning upload, published results, and a README badge.
  • Prefer the workflow GITHUB_TOKEN and GitHub repository rules visible to it. Do not add a long-lived PAT merely to improve a score without explicit authorization.
  • Enroll the repository on bestpractices.dev and work toward the appropriate honest Passing/Baseline level.
  • Answer badge criteria truthfully. Record genuinely unmet criteria as unmet and use N/A only where the criterion actually permits it.
  • Do not game Scorecard or badge results, claim independent review that did not occur, or impose governance the project does not currently have.
  • Preserve a workable single-maintainer model. The sole maintainer must remain able to merge their own work after required automated checks; do not introduce an independent-approval requirement that makes maintenance impossible.
  • Preserve release-please operation, including its GITHUB_TOKEN-created release PR, release tagging/publishing flow, and main to dev synchronization. Repository rules and required checks must not deadlock bot-authored release PRs or the maintainer’s authorized release operation.

2. Separate public documentation from developer documentation

Establish a deliberate source and publication boundary. Public and developer documentation must be independently understandable and maintainable.

  • Use an explicit public-doc source root or deterministic allowlist. Do not rely only on a growing blacklist of internal filenames.
  • Read the Docs production builds, search indexes, sitemaps, and pull-request previews must contain only public documentation.
  • Keep developer, implementation, workflow, issue-preflight, migration-working, audit, search-log, and internal research material in the repository, but outside the public build.
  • Provide a clear developer-documentation index from the contributing/development path.
  • Curate durable accepted architectural decisions and academically useful evidence into public explanations where they add reader value; do not publish every issue note merely because it exists under docs/.
  • Preserve stable public URLs where practical and add redirects where a published page moves.
  • Retain warning-strict Sphinx validation and locked/reproducible Read the Docs installation.

At minimum, the public build must not expose raw collections such as:

  • issue and preflight working notes under docs/decisions/
  • docs/lessons/
  • internal migration working notes
  • dated audits and search logs
  • Ground Control/requirement status snapshots
  • implementation current-state assessments intended for maintainers

3. Rewrite the README and curate public documentation

Rewrite rather than lightly rearrange the current prose.

The README must function as the project front door for a reader with no RAES context:

  • explain RAES in plain language within the opening paragraph;
  • show what problem it solves and what an authored environment looks like;
  • provide a short, tested installation and first-use path;
  • include a small concrete SDL example and the command or API used to validate it;
  • direct scenario authors, researchers, backend implementers, and contributors to distinct next steps;
  • explain current maturity and limitations without front-loading defensive disclaimers;
  • present AI security, CTF, disaster recovery, product testing, configuration testing, and research as illustrative uses without narrowing RAES to one domain or overstating delivered capabilities;
  • link to the hosted documentation, examples, API reference, contributing guide, security policy, citation information, releases, and package installation;
  • show only useful, accurate badges.

Create a public information architecture oriented around reader needs, including:

  • overview and core concepts;
  • quickstart and tutorials;
  • SDL authoring and validated examples;
  • Python and CLI use;
  • backend contracts and conformance;
  • academic/research material: conceptual model, formal semantics, methodology, evidence, limitations, reproducibility, lineage, and citation;
  • contributing and support.

Apply a plain-language editorial pass across public entry pages:

  • prefer concrete verbs and examples over strings of abstract nouns;
  • define specialized terms once;
  • remove duplicated caveats and repeated project-positioning paragraphs;
  • split exhaustive inventories into focused reference pages or tables;
  • distinguish normative specifications, explanatory guidance, academic evidence, and implementation status;
  • remove issue-management and implementation-process language from user-facing prose;
  • avoid promotional claims, personal adoption history, event announcements, or future-work hype.

Where a brief project history is useful, keep it factual and concise: acknowledge the Heron AI Security Fellowship origins, the ACES name, and the later RAES rename without turning the README into a personal or promotional narrative.

4. Standardize community documents

Audit and revise the repository’s community-health files using the CNCF Project Template as the primary structural reference, adapted to RAES rather than copied blindly. Cross-check the result against OpenSSF Best Practices Passing/Baseline criteria and GitHub’s community-profile expectations.

Review at least:

  • CONTRIBUTING.md
  • CODE_OF_CONDUCT.md
  • SECURITY.md
  • issue templates
  • pull-request template
  • support/reporting guidance
  • maintainer/governance information where useful for the current project

The resulting documents must:

  • give contributors an accurate setup, test, review, and submission path;
  • distinguish public contribution guidance from internal agent/Ground Control instructions;
  • state how bugs, feature requests, support questions, and vulnerabilities are reported;
  • provide a coordinated vulnerability-disclosure path and expected response handling without inventing staffing guarantees;
  • describe the actual single-maintainer decision model honestly;
  • document release-please ownership of versioning and CHANGELOG.md without exposing internal workflow clutter to ordinary users;
  • avoid requirements that the current project cannot honestly satisfy.

Acceptance criteria

  • The official OpenSSF Scorecard workflow runs successfully, publishes results, uploads SARIF, uses least privilege, and has a working README badge.
  • The bestpractices.dev project entry exists and accurately reflects the repository’s achieved status; its badge is shown only when valid.
  • Single-maintainer merges and release-please remain operational under the resulting rules and checks.
  • Public and developer documentation have separate, explicit source boundaries and navigation.
  • Read the Docs output and previews contain no internal preflight, working-note, audit, migration-work, or project-status pages.
  • Developer documents remain available in the repository through a clear developer index.
  • The README gives a new reader a comprehensible explanation and a tested path to first success without requiring architecture or governance knowledge.
  • Public documentation has clear paths for users, academics/researchers, backend implementers, and contributors.
  • The public prose no longer reads like an issue plan, requirements ledger, or exhaustive internal design inventory.
  • Community documents follow a coherent established template, are customized for RAES, and satisfy all honestly applicable OpenSSF Passing/Baseline documentation criteria.
  • Existing normative specifications, contracts, schemas, and implementation behavior are not changed merely to support the editorial migration.
  • Documentation builds warning-free, links are checked, examples and quickstart commands are tested, and the complete repository CI remains green.

Non-goals

  • Deleting internal developer or research records from the repository.
  • Claiming Silver/Gold badge criteria, a multi-maintainer bus factor, or independent review before those facts exist.
  • Adding mandatory external approval that blocks the current maintainer.
  • Replacing release-please or hand-editing release-owned versions or CHANGELOG.md.
  • Expanding RAES runtime or backend functionality solely to make documentation claims true.
  • Publishing personal context, adoption anecdotes, event announcements, or speculative roadmap claims.

Related work

References

  • OpenSSF Scorecard and official Scorecard Action
  • OpenSSF Best Practices Badge Passing/Baseline criteria
  • CNCF Project Template
  • GitHub community-profile guidance
  • Read the Docs configuration and reproducible-build guidance

Requirements

  • DOC-928 — Curated public documentation and enforced reader-first style

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestin-progressAn agent is actively working this issue via /implementsecuritySecurity vulnerabilities and hardening issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions