Skip to content

chore: add NOTICE.md and SECURITY.md (§5.2, §26.1) - #74

Merged
UnbreakableMJ merged 1 commit into
mainfrom
chore/posture-files
Sep 15, 2026
Merged

UnbreakableMJ merged 1 commit into
mainfrom
chore/posture-files

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Both were absent from a repository that ships 45 skills.

SECURITY.md is scoped to what this repo actually distributes

Skills are instructions a language model loads and acts on. That makes two classes of defect a security problem here rather than a documentation one:

  • A skill that instructs an agent to do something unsafe. Text telling a model to run a destructive command, disable a safety gate, exfiltrate a file, or trust an untrusted input reaches every session that loads the skill.
  • Injection through skill content. Reference files, code samples and quoted upstream material are read by a model as context. Content that smuggles directives into that position lands somewhere privileged.

construct-cli is in scope separately — it writes to ~/.claude/skills/ and unpacks archives.

The reporting section asks for the passage and what an agent would do having read it, and says explicitly that no proof-of-concept is wanted. It also notes that installed bundles are stale until reinstalled, so an advisory has to name the skill and version rather than assume a fix propagates.

One thing to fix at source

/spacecraft-software/license/'s templates ship without SPDX tags and fail reuse lint the moment they're copied. The header is added here, but every repo deriving from those templates inherits the problem. Same finding as Standard#42.

Verification

reuse lint — 647/647 files. All ten §5.2 + §6.5 + §5.7 artifacts now present.

🤖 Generated with Claude Code

Both were absent. SECURITY.md is written for what this repository actually
distributes: skills are instructions a model loads and acts on, so a skill
that tells an agent to run a destructive command, disable a safety gate, or
trust an untrusted input is a vulnerability here — not a documentation bug —
and it reaches every session that loads it. Injection through skill content
is named for the same reason: reference files and quoted upstream material
are read by a model as context, and smuggled directives land in a privileged
place.

construct-cli is in scope separately; it writes to ~/.claude/skills/ and
unpacks archives.

The file asks for the passage and what an agent would do having read it,
and says explicitly that no proof-of-concept is wanted.

It also notes that installed bundles are stale until reinstalled, so an
advisory must name the skill and version rather than assume a fix propagates.

NOTICE.md derives from /spacecraft-software/license/, whose templates ship
without SPDX tags and fail `reuse lint` on copy — the header is added here
and the template should be fixed at source.

reuse lint: 647/647 files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ merged commit c3c2fcd into main Sep 15, 2026
4 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the chore/posture-files branch September 15, 2026 17:07

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9bb3b8883

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread NOTICE.md
@@ -0,0 +1,63 @@
<!--
SPDX-FileCopyrightText: 2026 Mohamed Hammad <Mohamed.Hammad@SpacecraftSoftware.org>
SPDX-License-Identifier: CC-BY-SA-4.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add a REUSE override for the declared CC license

Both new files declare CC-BY-SA-4.0, but the repository's catch-all REUSE.toml annotation uses precedence = "override" and assigns GPL-3.0-or-later, suppressing these inline declarations; moreover, LICENSES/CC-BY-SA-4.0.txt is absent. Consequently, REUSE consumers treat the files as GPL even though their headers say CC, and NOTICE.md also states GPL in its footer. Add a path-specific CC override and the corresponding license text, or consistently declare the files GPL.

AGENTS.md reference: AGENTS.md:L567-L569

Useful? React with 👍 / 👎.

Comment thread NOTICE.md
Comment on lines +10 to +14
Spacecraft Software is a **personal hobby project** maintained by Mohamed Hammad. Its
primary purpose is to serve the maintainer's own use case — a Rust-first
systems software stack, tooling, and rewrites that the maintainer wants to
run on his own machines. Most subprojects are developed at hobby pace and
shaped around that workflow.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Scope the posture notice to Construct

This repository-level notice describes the entire Spacecraft Software umbrella and discusses unrelated subprojects such as Anvil-SSH, without ever stating Construct's own posture. The governing Standard's §5.2 requires each repository's posture files to customize the project name and scope, so this notice currently purports to set expectations and liability posture for other repositories instead of documenting the project in which it ships.

AGENTS.md reference: AGENTS.md:L47-L51

Useful? React with 👍 / 👎.

Comment thread SECURITY.md
| Acknowledgement | within 7 days |
| Assessment | within 30 days |
| Supported versions | `main`, and the most recently published bundle of the affected skill |
| Disclosure | coordinated; the fix lands before any public description |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Set an endpoint for coordinated disclosure

The disclosure policy only says that publication follows a fix, so if a fix is delayed or declined, a reporter is left under an indefinite embargo with no stated release point. The governing §26.1 in spacecraft-steelbore-standard/references/engineering-process.md requires both the embargo the maintainer will honor and the point at which a finding may be published regardless of fix status; add a concrete deadline or decision condition.

AGENTS.md reference: AGENTS.md:L47-L51

Useful? React with 👍 / 👎.

Comment thread SECURITY.md
|---|---|
| Acknowledgement | within 7 days |
| Assessment | within 30 days |
| Supported versions | `main`, and the most recently published bundle of the affected skill |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Give installed bundles an identifiable supported version

The policy scopes support to the latest published bundle and later promises to identify an affected version, but 41 of the 45 skills in this commit have no version field, the bundle filenames are unversioned, and installed zip contents retain no source commit identity. A user with a stale installed copy therefore cannot determine whether it is the supported or affected bundle; define a revision/hash identifier that advisories and consumers can inspect, or add version metadata to every bundle.

AGENTS.md reference: AGENTS.md:L47-L51

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant