Skip to content

Commit 9f51ca7

Browse files
authored
Merge branch 'main' into chore/relax-dependency-review-policy
2 parents 2a5be5e + ab7a349 commit 9f51ca7

File tree

7 files changed

+114
-48
lines changed

7 files changed

+114
-48
lines changed

.github/dependency-review-config.yml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.github/workflows/dependency-review.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

CODE_OF_CONDUCT.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Code of Conduct
2+
3+
This project aims to be a welcoming, practical, and respectful place to build together.
4+
5+
## Our Standard
6+
7+
Contributors are expected to:
8+
9+
- communicate with respect and patience
10+
- assume good intent and give constructive feedback
11+
- focus on the code and the idea, not the person
12+
- help keep the template reusable for many kinds of teams and projects
13+
14+
Unacceptable behavior includes harassment, personal attacks, hateful language, doxxing, or deliberately disruptive conduct.
15+
16+
## Scope
17+
18+
This code of conduct applies to repository discussions, issues, pull requests, and other project spaces.
19+
20+
## Reporting
21+
22+
If you experience or witness unacceptable behavior, contact the repository maintainer privately through GitHub before opening a public thread.
23+
24+
## Enforcement
25+
26+
Project maintainers may remove comments, close threads, reject contributions, or block participation when behavior harms the project or its contributors.

CONTRIBUTING.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ npm run report:licenses
9595

9696
That command writes generated reports into `reports/licenses/`.
9797

98-
Dependency review also runs automatically on pull requests to catch newly introduced vulnerable dependency changes.
99-
100-
That dependency review config also includes an allowlist for the licenses already present in the current dependency tree. If you intentionally add a dependency under a new acceptable license, update `.github/dependency-review-config.yml` in the same pull request.
101-
10298
## Changing the API Contract
10399

104100
If you modify request or response shapes:

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Boyeep
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.

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,8 @@ The root check runs:
123123

124124
CodeQL code scanning also runs on GitHub for `javascript-typescript`, `python`, and workflow files.
125125

126-
Pull requests also run GitHub dependency review so new vulnerable dependency changes are easier to catch before merge.
127-
128126
A separate GitHub workflow generates license-report artifacts for the root workspace, frontend workspace, and backend Python environment.
129127

130-
The dependency-review config also keeps a conservative allowlist of licenses already present in the current dependency tree, so tightening policy does not start by breaking routine updates.
131-
132128
An SBOM workflow also publishes SPDX artifacts for the repository source plus the frontend and backend runner images.
133129

134130
## Releases
@@ -159,3 +155,11 @@ An SBOM workflow also publishes SPDX artifacts for the repository source plus th
159155
5. Split training and experimentation into a separate workspace later.
160156

161157
The short public roadmap lives in [soon.md](./soon.md).
158+
159+
## Repository Standards
160+
161+
- [CONTRIBUTING.md](./CONTRIBUTING.md)
162+
- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
163+
- [LICENSE](./LICENSE)
164+
- [SECURITY.md](./SECURITY.md)
165+
- [template-playbook.md](./template-playbook.md)

template-playbook.md

Lines changed: 59 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,17 @@ Build the second layer early, not after the repo gets messy.
4747
- `README.md`
4848
- `CONTRIBUTING.md`
4949
- `SECURITY.md`
50+
- `CODE_OF_CONDUCT.md` for public/community-facing templates
51+
- `LICENSE` for public templates
5052
- `AGENTS.md` or equivalent internal guidance
53+
- tool-specific agent guidance only if you actively maintain it
5154
- short roadmap file like `soon.md`
5255

5356
### Root Commands
5457

5558
- `dev`
5659
- `check`
60+
- `e2e` if the repo ships real browser or full-stack user flows
5761
- `check:contract` if generated artifacts exist
5862
- `check:images` if the repo ships deployable containers
5963
- `check:workflows`
@@ -64,19 +68,21 @@ Build the second layer early, not after the repo gets messy.
6468

6569
- workflow lint
6670
- secret scan
67-
- dependency review on pull requests
71+
- optional dependency review on pull requests if it stays low-noise for the repo
6872
- license reporting when dependency visibility matters
6973
- SBOM generation for source or publishable artifacts when relevant
7074
- app verification
75+
- browser E2E or integration coverage when the template markets real user flows
7176
- cross-platform check if relevant
7277
- packaging or Docker build check if relevant
7378

7479
### Release Layer
7580

76-
- release drafter
81+
- release drafter or release-please
7782
- semver labels
7883
- label sync
7984
- publish workflow
85+
- managed changelog and version files if your release tool owns them
8086
- provenance attestations for published artifacts when possible
8187
- attach SBOMs to releases when you publish installable artifacts or images
8288
- release smoke test
@@ -113,13 +119,16 @@ Generic takeaway:
113119
- every serious starter should have a contributor guide
114120
- every serious starter should have an internal or agent-facing rules file
115121
- every public starter should have a security reporting path
122+
- every public starter should usually ship a code of conduct and explicit license
123+
- tool-specific AI guidance should be optional and maintained, not sprayed everywhere by default
116124

117125
### Root Script Layer
118126

119127
Keep:
120128

121129
- `scripts/dev.mjs`
122130
- `scripts/check.mjs`
131+
- `scripts/e2e.mjs`
123132
- `scripts/check-contract-drift.mjs`
124133
- `scripts/check-docker-builds.mjs`
125134
- `scripts/check-release-smoke.mjs`
@@ -139,6 +148,7 @@ Generic takeaway:
139148

140149
- keep a root `dev` command
141150
- keep a root `check` command
151+
- add a root `e2e` command when the product story depends on real user flows
142152
- add small focused helper scripts instead of giant shell blobs in workflows
143153
- prefer reusable scripts that can run locally and in CI
144154

@@ -229,8 +239,10 @@ What it should cover:
229239
- draft releases from merged PRs
230240
- path-based autolabeling
231241
- semver bump guidance through labels
232-
- tag-triggered release workflow
242+
- one clear release spine such as release-please or draft-plus-publish
243+
- tag-triggered release workflow or release PR merge flow
233244
- package or image publishing
245+
- managed changelog and version files when the release tool owns them
234246
- provenance attestations for published artifacts
235247
- attached SBOM release assets for published source and runtime artifacts
236248
- release smoke test against published artifacts
@@ -246,6 +258,7 @@ Why it matters:
246258
Generic takeaway:
247259

248260
- if the repo is public and meant to last, release automation is worth it
261+
- pick one release automation path and document it clearly instead of mixing multiple half-systems
249262
- release smoke tests are especially valuable because they test the thing users actually consume
250263
- provenance attestations strengthen trust in published artifacts without requiring manual signing steps
251264
- attaching SBOMs directly to releases makes supply-chain metadata easier for downstream users to consume
@@ -279,8 +292,6 @@ Keep:
279292
- `scripts/report-licenses.mjs`
280293
- `.github/workflows/template-ci.yml`
281294
- `.github/workflows/codeql.yml`
282-
- `.github/workflows/dependency-review.yml`
283-
- `.github/dependency-review-config.yml`
284295
- `.github/workflows/license-report.yml`
285296
- `.github/workflows/sbom.yml`
286297
- `SECURITY.md`
@@ -289,7 +300,7 @@ What it should cover:
289300

290301
- tracked git content scanned with `gitleaks` or equivalent
291302
- CodeQL or equivalent static analysis
292-
- dependency review on pull requests
303+
- optional dependency review on pull requests if it behaves cleanly for the dependency ecosystems in the repo
293304
- generated license inventories for package ecosystems in the repo
294305
- SBOM artifacts for source and release artifacts
295306
- private disclosure guidance
@@ -304,7 +315,7 @@ Generic takeaway:
304315

305316
- secret scanning is a near-default for public repos
306317
- CodeQL or equivalent static analysis is a strong baseline for maintained starters
307-
- dependency review gives fast signal before risky packages land
318+
- dependency review can be useful, but it should be kept non-blocking or removed if it creates more noise than signal
308319
- non-blocking license reporting is a good bridge before stricter allowlist enforcement
309320
- SBOM generation is a strong supply-chain visibility layer for deployable templates
310321

@@ -325,6 +336,25 @@ Generic takeaway:
325336

326337
- if a repo relies on Actions, lint the workflows
327338

339+
### Browser E2E Or Full-Stack Smoke Coverage
340+
341+
Keep when relevant:
342+
343+
- `scripts/e2e.mjs`
344+
- browser smoke workflow
345+
- stable seeded test account or fixture data
346+
347+
Why it matters:
348+
349+
- verifies real user journeys before release, not just units and builds
350+
- catches auth, routing, startup, and environment-wiring regressions
351+
- makes a public starter feel much more trustworthy
352+
353+
Generic takeaway:
354+
355+
- if the template markets login, dashboard, forms, or other full-stack flows, ship at least one browser E2E smoke path
356+
- keep it focused on stable happy-path journeys rather than UI trivia
357+
328358
### Post-Release Smoke Testing
329359

330360
Keep when relevant:
@@ -390,6 +420,8 @@ For a strong public starter, this is a good baseline:
390420
README.md
391421
CONTRIBUTING.md
392422
SECURITY.md
423+
CODE_OF_CONDUCT.md
424+
LICENSE
393425
AGENTS.md
394426
soon.md
395427
.github/CODEOWNERS
@@ -398,9 +430,7 @@ soon.md
398430
.github/ISSUE_TEMPLATE/*
399431
.github/release-drafter.yml
400432
.github/labels.json
401-
.github/dependency-review-config.yml
402433
.github/workflows/template-ci.yml
403-
.github/workflows/dependency-review.yml
404434
.github/workflows/release-drafter.yml
405435
.github/workflows/release.yml
406436
.github/workflows/release-smoke.yml
@@ -410,6 +440,7 @@ soon.md
410440
.github/workflows/codeql.yml
411441
scripts/dev.mjs
412442
scripts/check.mjs
443+
scripts/e2e.mjs
413444
scripts/check-actionlint.mjs
414445
scripts/check-secrets.mjs
415446
scripts/report-licenses.mjs
@@ -421,11 +452,20 @@ Add these if relevant:
421452
scripts/check-contract-drift.mjs
422453
scripts/check-docker-builds.mjs
423454
scripts/check-release-smoke.mjs
455+
.github/dependency-review-config.yml
456+
.github/workflows/dependency-review.yml
424457
docs/assets/*
425458
docs/openapi.yaml
426459
tests/fixtures/*
427460
tests/snapshots/*
428461
src/app/docs-preview/*
462+
CHANGELOG.md
463+
version.txt
464+
release-please-config.json
465+
.release-please-manifest.json
466+
.github/copilot-instructions.md
467+
.cursor/rules/*
468+
CLAUDE.md
429469
```
430470

431471
## Suggested Template Blueprint
@@ -437,13 +477,15 @@ For most future non-domain-specific starters, preserve this rough shape:
437477
- strong README
438478
- contributor guide
439479
- security policy
480+
- code of conduct and license for public templates
440481
- agent guidance
441482
- roadmap file
442483

443484
### Local DX
444485

445486
- root `dev`
446487
- root `check`
488+
- root `e2e` when real user journeys matter
447489
- focused helper scripts
448490
- reproducible screenshots or docs previews if there is UI
449491

@@ -452,13 +494,14 @@ For most future non-domain-specific starters, preserve this rough shape:
452494
- workflow lint
453495
- secret scan
454496
- app, test, and build verification
497+
- browser E2E when the product story promises real workflows
455498
- platform-specific verification if relevant
456-
- dependency review
499+
- optional dependency review if it is trustworthy for the repo
457500
- Docker or packaging check if deployable
458501

459502
### Release Layer
460503

461-
- release drafter
504+
- release drafter or release-please
462505
- label sync
463506
- semver labeling rules
464507
- publish workflow
@@ -509,9 +552,10 @@ This is the minimum point where a repo starts feeling dependable.
509552
If you want the version that scales better for open source or long-term reuse, also add:
510553

511554
- `AGENTS.md`
555+
- `CODE_OF_CONDUCT.md`
556+
- `LICENSE`
512557
- workflow lint
513558
- CodeQL
514-
- dependency review
515559
- label sync
516560
- release drafter
517561
- release smoke tests
@@ -558,14 +602,16 @@ These patterns are still generic even though the local implementation is CV-shap
558602
- generated files should have drift checks
559603
- local scripts and CI should use the same commands
560604
- published artifacts should get smoke-tested
605+
- repos with real user flows should have at least one browser E2E confidence path
561606
- workflows should be linted
562607
- secrets should be scanned
563-
- dependency changes should be reviewed on pull requests
608+
- dependency changes should be reviewed on pull requests when the signal is reliable enough to justify the maintenance cost
564609
- dependency licenses should be reportable without manual digging
565610
- SBOMs should be generated for source trees or release artifacts when supply-chain visibility matters
566611
- published artifacts should have provenance attestations when the platform supports them
567612
- release notes should tell consumers how to verify what you published
568613
- release steps should be automated
614+
- release automation should have one explicit owner path such as release-please or release-drafter-plus-publish
569615
- docs should explain maintainer flow, not just user setup
570616

571617
## Good Default Questions For Any New Template

0 commit comments

Comments
 (0)