Skip to content

Commit 17276aa

Browse files
committed
Expand template playbook
1 parent 458ee34 commit 17276aa

File tree

1 file changed

+52
-3
lines changed

1 file changed

+52
-3
lines changed

template-playbook.md

Lines changed: 52 additions & 3 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`
@@ -68,15 +72,17 @@ Build the second layer early, not after the repo gets messy.
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
@@ -325,6 +338,25 @@ Generic takeaway:
325338

326339
- if a repo relies on Actions, lint the workflows
327340

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

330362
Keep when relevant:
@@ -390,6 +422,8 @@ For a strong public starter, this is a good baseline:
390422
README.md
391423
CONTRIBUTING.md
392424
SECURITY.md
425+
CODE_OF_CONDUCT.md
426+
LICENSE
393427
AGENTS.md
394428
soon.md
395429
.github/CODEOWNERS
@@ -410,6 +444,7 @@ soon.md
410444
.github/workflows/codeql.yml
411445
scripts/dev.mjs
412446
scripts/check.mjs
447+
scripts/e2e.mjs
413448
scripts/check-actionlint.mjs
414449
scripts/check-secrets.mjs
415450
scripts/report-licenses.mjs
@@ -426,6 +461,13 @@ docs/openapi.yaml
426461
tests/fixtures/*
427462
tests/snapshots/*
428463
src/app/docs-preview/*
464+
CHANGELOG.md
465+
version.txt
466+
release-please-config.json
467+
.release-please-manifest.json
468+
.github/copilot-instructions.md
469+
.cursor/rules/*
470+
CLAUDE.md
429471
```
430472

431473
## Suggested Template Blueprint
@@ -437,13 +479,15 @@ For most future non-domain-specific starters, preserve this rough shape:
437479
- strong README
438480
- contributor guide
439481
- security policy
482+
- code of conduct and license for public templates
440483
- agent guidance
441484
- roadmap file
442485

443486
### Local DX
444487

445488
- root `dev`
446489
- root `check`
490+
- root `e2e` when real user journeys matter
447491
- focused helper scripts
448492
- reproducible screenshots or docs previews if there is UI
449493

@@ -452,13 +496,14 @@ For most future non-domain-specific starters, preserve this rough shape:
452496
- workflow lint
453497
- secret scan
454498
- app, test, and build verification
499+
- browser E2E when the product story promises real workflows
455500
- platform-specific verification if relevant
456501
- dependency review
457502
- Docker or packaging check if deployable
458503

459504
### Release Layer
460505

461-
- release drafter
506+
- release drafter or release-please
462507
- label sync
463508
- semver labeling rules
464509
- publish workflow
@@ -509,6 +554,8 @@ This is the minimum point where a repo starts feeling dependable.
509554
If you want the version that scales better for open source or long-term reuse, also add:
510555

511556
- `AGENTS.md`
557+
- `CODE_OF_CONDUCT.md`
558+
- `LICENSE`
512559
- workflow lint
513560
- CodeQL
514561
- dependency review
@@ -558,6 +605,7 @@ These patterns are still generic even though the local implementation is CV-shap
558605
- generated files should have drift checks
559606
- local scripts and CI should use the same commands
560607
- published artifacts should get smoke-tested
608+
- repos with real user flows should have at least one browser E2E confidence path
561609
- workflows should be linted
562610
- secrets should be scanned
563611
- dependency changes should be reviewed on pull requests
@@ -566,6 +614,7 @@ These patterns are still generic even though the local implementation is CV-shap
566614
- published artifacts should have provenance attestations when the platform supports them
567615
- release notes should tell consumers how to verify what you published
568616
- release steps should be automated
617+
- release automation should have one explicit owner path such as release-please or release-drafter-plus-publish
569618
- docs should explain maintainer flow, not just user setup
570619

571620
## Good Default Questions For Any New Template

0 commit comments

Comments
 (0)