Skip to content

Commit 5171c81

Browse files
mdixon47claude
andauthored
Prepare v0.1.0: MIT license, command entry points, README, and catalog fixes (#6)
Release requirements -------------------- - License is now MIT. Replaces PolyForm Noncommercial across LICENSE.md, SKILL.md, README.md, CONTRIBUTING.md, MAINTAINERS.md, the CLA relicensing clause, and the issue-template contact links. Removes docs/legal/COMMERCIAL-LICENSING.md, which described a restriction that no longer exists. TRADEMARKS.md now states the boundary explicitly, since it used to lean on the noncommercial license: the code is MIT, the DSB names, logos, and curriculum are not. - Adds /devsecops-engineer:advise, :design, and :assess via .claude-plugin/plugin.json and commands/. Each command selects an operating mode, passes $ARGUMENTS through, and reads SKILL.md — nothing more. A command that restates a rule creates a second catalog nobody validates, so tests/test_commands.py fails any command containing a rule ID or an enforcement level, and the policy is written down in CONTRIBUTING.md. - README rewritten as a product front door: what it is, why (four outcomes), 60-second install, three runnable prompts, workflows, how the reasoning works, documentation index, status. Adds a table of contents and links every file under docs/ — docs/legal/CLA.md had never been reachable from it. tests/test_readme.py holds both properties. - Adds CHANGELOG.md with the v0.1.0 entry and explicit pre-1.0 language. A test asserts plugin.json and the changelog agree on the version, so they cannot diverge at tag time. - Moves project documentation into docs/. LICENSE.md stays at the root, where GitHub looks for it. Correctness fixes ----------------- - Re-keys 21 rules onto capabilities that describe what actually satisfies them, and adds the 10 capabilities they needed. Resolution keys on capability, so DSB-SRC-001, DSB-ID-002, DSB-EVD-001 and others previously resolved to REUSE the moment an organization declared any pipeline-configuration scanner — reporting branch protection and least privilege as satisfied by a tool that does neither. Likewise sbom-generation on DSB-BUILD-001, and secret-scanning on DSB-ID-003, which requires a secret store rather than a detector. - Fixes the GitHub Actions reference pipeline's DSB-EXC-003 assertion, whose grep pattern contained the literal string it searched for and so failed on a clean repository. Patterns now live in env, bracket-escaped, and allow a line annotated `# DSB-WARN:` because continue-on-error is how this platform expresses a WARN-level control. - Replaces `aws ecs deploy`, which is not an AWS CLI command, with describe/register/update-service by digest; adds the ECR registry and login that DSB-ART-001 requires; separates the publish role from the deployment roles; gates the scan jobs on test per DSB-TEST-001. - Pins the Jenkins shared library to a commit. `@v3` is a mutable reference and is the defect DSB-SC-002 exists to catch. - Adds five Workload Profile fields that SKILL.md documents and rules depend on but the schema rejected, and lets array fields express `unknown`. Two of the three published example profiles failed their own schema. - Pins tools/requirements.txt exactly. `>=` floors mean a commit does not resolve a fixed dependency set, which is what DSB-BUILD-002 forbids. - Corrects TESTING.md's validator demonstration, which targeted a string not present in SKILL.md and therefore proved nothing, and CONTRIBUTING.md's documented rule format, which omitted the curriculum module title the validator requires. Verification: validate_skill.py reports 42 rules across 11 families with no violations, the generated mapping index is current, and the suite is at 106 tests, up from 56. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent e6b2423 commit 5171c81

39 files changed

Lines changed: 996 additions & 344 deletions

.claude-plugin/plugin.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "devsecops-engineer",
3+
"version": "0.1.0",
4+
"description": "Advise on, design, and assess CI/CD delivery pipelines using The DevSec Blueprint's Build → Test → Scan → Deploy DevSecOps engineering methodology.",
5+
"author": {
6+
"name": "The DevSec Blueprint",
7+
"url": "https://github.com/devsecblueprint"
8+
},
9+
"homepage": "https://github.com/devsecblueprint/devsecops-claude-skill",
10+
"repository": "https://github.com/devsecblueprint/devsecops-claude-skill",
11+
"license": "MIT",
12+
"keywords": [
13+
"devsecops",
14+
"cicd",
15+
"pipeline",
16+
"appsec",
17+
"supply-chain",
18+
"sast",
19+
"sca",
20+
"sbom",
21+
"ssdf",
22+
"slsa"
23+
]
24+
}

.github/CODEOWNERS

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
# Ownership for The DSB DevSecOps Engineering Skill.
2-
# See MAINTAINERS.md. Later matches win, so the narrow rules come last.
2+
# See docs/MAINTAINERS.md. Later matches win, so the narrow rules come last.
33

44
* @damienjburks
55

66
# SKILL.md is the product. Every change to it is a change to guidance that
7-
# reaches users directly.
7+
# reaches users directly. commands/ and the plugin manifest define the public
8+
# entry points and the released version.
89
/SKILL.md @damienjburks
10+
/commands/ @damienjburks
11+
/.claude-plugin/ @damienjburks
12+
/CHANGELOG.md @damienjburks
913

1014
# Rule content and the registries rules are validated against.
1115
/rules/ @damienjburks
1216
/references/ @damienjburks
1317
/schema/ @damienjburks
1418

15-
# Licensing and contributor terms.
19+
# Project documentation, licensing, and contributor terms.
20+
/docs/ @damienjburks
1621
/LICENSE.md @damienjburks
17-
/docs/legal/ @damienjburks

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
value: |
88
If the problem is that generated configuration would introduce a real
99
security weakness, report it privately instead — see
10-
[SECURITY.md](https://github.com/devsecblueprint/devsecops-claude-skill/blob/main/SECURITY.md).
10+
[SECURITY.md](https://github.com/devsecblueprint/devsecops-claude-skill/blob/main/docs/SECURITY.md).
1111
1212
- type: dropdown
1313
id: area

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ contact_links:
1212
url: https://github.com/devsecblueprint/devsecblueprint/issues/new
1313
about: The four phases and baseline principles come from DSB curriculum — raise those on the platform repository.
1414

15-
- name: Commercial licensing
16-
url: https://github.com/devsecblueprint/devsecops-claude-skill/blob/main/docs/legal/COMMERCIAL-LICENSING.md
17-
about: Using this inside a company requires prior written authorization.
15+
- name: Trademark and brand use
16+
url: https://github.com/devsecblueprint/devsecops-claude-skill/blob/main/docs/legal/TRADEMARKS.md
17+
about: The code is MIT. DSB names, logos, and curriculum content are not.

.github/workflows/validate.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,21 @@ jobs:
2020
with:
2121
python-version: "3.13"
2222

23+
# DSB-BUILD-002: requirements.txt pins direct dependencies exactly, so a
24+
# given commit resolves the same versions of the tools CI runs. Transitive
25+
# versions still float — a fully hashed lock file is the next step up, and
26+
# is only worth it if this repository starts shipping an executable
27+
# artifact rather than Markdown.
2328
- name: Install dependencies
2429
run: pip install -r tools/requirements.txt
2530

2631
- name: Validate SKILL.md
2732
run: python tools/validate_skill.py
2833

34+
# DSB-EVD-001: the generated index must match SKILL.md. tests/ covers this
35+
# too; running it here names the fix in the failure output.
36+
- name: Check generated mappings are current
37+
run: python tools/generate_mappings.py --check
38+
2939
- name: Run tests
3040
run: python -m pytest -v

CHANGELOG.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Changelog
2+
3+
All notable changes to this project are documented here. This project follows
4+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5+
6+
## [0.1.0] — 2026-08-16
7+
8+
Initial public release.
9+
10+
**Pre-1.0.** The rule catalog and the skill's output structure will evolve based on
11+
real usage before 1.0. Rule *IDs* are the exception and are already stable: they
12+
appear in review output that ends up in audit records, so a retired ID is deprecated,
13+
never reused or renumbered.
14+
15+
### Added
16+
17+
- `SKILL.md` — the skill. Self-contained: 42 rules across 11 families, the
18+
Build → Test → Scan → Deploy methodology, the twenty baseline principles, and the
19+
Advise / Design / Review operating modes. Installing it needs this file and nothing
20+
else.
21+
- Command entry points for Claude Code, under the `devsecops-engineer` plugin:
22+
- `/devsecops-engineer:advise` — where controls belong, given a stack and the tools
23+
already owned
24+
- `/devsecops-engineer:design` — implementation-ready pipeline configuration
25+
- `/devsecops-engineer:assess` — findings against an existing pipeline or repository
26+
- Worked examples across four stacks — greenfield GitHub Actions, an enterprise
27+
Jenkins toolchain that introduces zero new scanners, a Terraform-only repository
28+
where twelve rules are Not Applicable, and a review of a pipeline with real defects.
29+
- Framework mappings to NIST SSDF, SLSA, OWASP CI/CD, OWASP SAMM, and CNCF supply
30+
chain guidance, generated from the rule catalog into `docs/framework-mappings.md`.
31+
- Machine-readable capability registry, curriculum snapshot, JSON Schemas for the rule
32+
and workload-profile structures, and a partial YAML projection of the catalog.
33+
- `tools/validate_skill.py` and a pytest suite, both run in CI.
34+
35+
### Changed
36+
37+
- **License is now MIT** (was PolyForm Noncommercial 1.0.0). Commercial use no longer
38+
requires prior written authorization, and `docs/legal/COMMERCIAL-LICENSING.md` has
39+
been removed. DSB names, logos, and curriculum content remain outside the license —
40+
see `docs/legal/TRADEMARKS.md`.
41+
- README rewritten as a product front door: what it is, why it exists, install, three
42+
prompts to try, and how the reasoning works.
43+
44+
[0.1.0]: https://github.com/devsecblueprint/devsecops-claude-skill/releases/tag/v0.1.0

LICENSE.md

Lines changed: 21 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,21 @@
1-
# PolyForm Noncommercial License 1.0.0
2-
3-
<https://polyformproject.org/licenses/noncommercial/1.0.0>
4-
5-
Required Notice: Copyright © 2026 The DevSec Blueprint LLC. All rights reserved.
6-
7-
Required Notice: Commercial use of this software requires prior written authorization from The DevSec Blueprint LLC.
8-
9-
Required Notice: The DevSec Blueprint name, DSB name, logos, trademarks, service marks, and branding are not licensed under these terms.
10-
11-
## Acceptance
12-
13-
In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
14-
15-
## Copyright License
16-
17-
The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to Distribution License and make changes or new works based on the software according to Changes and New Works License.
18-
19-
## Distribution License
20-
21-
The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by Changes and New Works License.
22-
23-
## Notices
24-
25-
You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example:
26-
27-
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
28-
29-
## Changes and New Works License
30-
31-
The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
32-
33-
## Patent License
34-
35-
The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
36-
37-
## Noncommercial Purposes
38-
39-
Any noncommercial purpose is a permitted purpose.
40-
41-
## Personal Uses
42-
43-
Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
44-
45-
## Noncommercial Organizations
46-
47-
Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
48-
49-
## Fair Use
50-
51-
You may have "fair use" rights for the software under the law. These terms do not limit them.
52-
53-
## No Other Rights
54-
55-
These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
56-
57-
## Patent Defense
58-
59-
If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
60-
61-
## Violations
62-
63-
The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
64-
65-
## No Liability
66-
67-
As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.
68-
69-
## Definitions
70-
71-
The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
72-
73-
**You** refers to the individual or entity agreeing to these terms.
74-
75-
**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
76-
77-
**Your licenses** are all the licenses granted to you for the software under these terms.
78-
79-
**Use** means anything you do with the software requiring one of your licenses.
80-
81-
---
82-
83-
PolyForm Noncommercial License 1.0.0 is a standard license published by the PolyForm Project. The required notices above identify The DevSec Blueprint LLC and state conditions applicable to DSB-owned software distributed with this file.
1+
# MIT License
2+
3+
Copyright (c) 2026 The DevSec Blueprint LLC
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)