Skip to content

Commit 5d82579

Browse files
sestinjclaude
andcommitted
docs: polish repo with community files, OG card, skill, and publishing setup
- README overhaul with banner, Why section, TOC, and tables - LICENSE (Apache-2.0), CONTRIBUTING.md, SECURITY.md - Issue templates (bug report, feature request) and PR template - OG card HTML for social preview - Usage skill (skill/SKILL.md) for coding agent adoption - PR check for template quality (.continue/checks/template-quality.md) - release.config.cjs with OIDC-based npm publishing (no NPM_TOKEN) - Postinstall message pointing to the skill - GitHub release notes categorization (.github/release.yml) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 85ff5c3 commit 5d82579

17 files changed

Lines changed: 818 additions & 16 deletions
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
name: Template Quality
3+
description: Ensures curated templates follow the correct frontmatter format, have meaningful instructions, and match the registry in create.js
4+
---
5+
6+
Review this pull request for issues with the curated check and agent templates.
7+
8+
## What to Check
9+
10+
### 1. Frontmatter Format (Error)
11+
12+
Every template in `src/templates/checks/` and `src/templates/agents/` must have valid YAML frontmatter with at least `name` and `description` fields:
13+
14+
```markdown
15+
---
16+
name: Template Name
17+
description: What this template does
18+
---
19+
```
20+
21+
Agent templates that trigger automatically must also have an `on:` field:
22+
23+
```markdown
24+
---
25+
name: Agent Name
26+
description: What this agent does
27+
on:
28+
github:
29+
issues:
30+
types: [labeled]
31+
labels: ["some-label"]
32+
---
33+
```
34+
35+
### 2. Registry Sync (Error)
36+
37+
The `CHECKS` and `AGENTS` arrays in `src/commands/create.js` must match the actual template files in `src/templates/`. Check for:
38+
39+
- Template files that exist but aren't listed in the array
40+
- Array entries that reference files that don't exist
41+
- Mismatched `name` or `description` between the array and the frontmatter
42+
43+
### 3. Template Content (Warning)
44+
45+
Templates should:
46+
47+
- Have clear, actionable instructions (not just a title and description)
48+
- Include a "What to Check" or "Instructions" section
49+
- Define severity levels for checks (Error, Warning, Info)
50+
- Be generic enough to work across different project types
51+
52+
### 4. New Templates Need README Update (Warning)
53+
54+
If a template is added or removed, the README's "Included Templates" section should be updated to match.
55+
56+
## Severity
57+
58+
- **Error**: Invalid frontmatter, missing from registry, registry points to nonexistent file
59+
- **Warning**: Thin template content, README out of sync with templates
60+
- **Info**: Template could be more detailed or cover more edge cases
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Bug Report
2+
description: Report a bug with create-software-factory
3+
labels: ["bug"]
4+
body:
5+
- type: input
6+
id: version
7+
attributes:
8+
label: Version
9+
description: "Run `npx create-software-factory --version`"
10+
placeholder: "0.1.0"
11+
validations:
12+
required: true
13+
- type: input
14+
id: node-version
15+
attributes:
16+
label: Node.js version
17+
description: "Run `node --version`"
18+
placeholder: "v20.0.0"
19+
validations:
20+
required: true
21+
- type: dropdown
22+
id: flow
23+
attributes:
24+
label: Which flow?
25+
options:
26+
- Interactive create (no --from)
27+
- GitHub import (--from)
28+
- Both
29+
validations:
30+
required: true
31+
- type: textarea
32+
id: description
33+
attributes:
34+
label: Description
35+
description: What happened? What did you expect?
36+
validations:
37+
required: true
38+
- type: textarea
39+
id: repro
40+
attributes:
41+
label: Steps to reproduce
42+
description: Minimal steps to reproduce the issue
43+
value: |
44+
1. Run `npx create-software-factory ...`
45+
2. Select ...
46+
3. See error
47+
validations:
48+
required: true
49+
- type: textarea
50+
id: logs
51+
attributes:
52+
label: Logs
53+
description: Paste any error output
54+
render: shell

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: false
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: Problem
9+
description: What problem does this solve? What are you trying to do?
10+
validations:
11+
required: true
12+
- type: textarea
13+
id: solution
14+
attributes:
15+
label: Proposed solution
16+
description: How should this work?
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: alternatives
21+
attributes:
22+
label: Alternatives considered
23+
description: What other approaches did you consider?

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Description
2+
3+
<!-- What does this PR do? Why? -->
4+
5+
## Type of change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Documentation
10+
- [ ] Refactor
11+
- [ ] Other (describe below)
12+
13+
## Checklist
14+
15+
- [ ] Tests added/updated
16+
- [ ] Types are correct
17+
- [ ] Commit messages follow Conventional Commits
18+
- [ ] README updated (if applicable)

.github/assets/continue-banner.png

2.01 MB
Loading

.github/assets/og-card.html

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=1280">
6+
<title>create-software-factory — Social Card</title>
7+
<link rel="preconnect" href="https://fonts.googleapis.com">
8+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9+
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400&family=IBM+Plex+Sans:wght@300;400;500&display=swap" rel="stylesheet">
10+
<style>
11+
* { margin: 0; padding: 0; box-sizing: border-box; }
12+
body {
13+
width: 1280px;
14+
height: 640px;
15+
overflow: hidden;
16+
font-family: 'IBM Plex Sans', -apple-system, sans-serif;
17+
background: hsl(0 0% 95.3%);
18+
position: relative;
19+
}
20+
21+
/* Ambient glow — top-right */
22+
.ambient {
23+
position: absolute;
24+
top: -80px;
25+
right: -80px;
26+
width: 600px;
27+
height: 600px;
28+
background: radial-gradient(
29+
circle at center,
30+
rgba(120, 100, 255, 0.12) 0%,
31+
rgba(180, 140, 255, 0.06) 40%,
32+
transparent 70%
33+
);
34+
filter: blur(40px);
35+
pointer-events: none;
36+
}
37+
38+
.content {
39+
position: relative;
40+
z-index: 1;
41+
width: 100%;
42+
height: 100%;
43+
display: flex;
44+
flex-direction: column;
45+
justify-content: center;
46+
padding: 0 100px;
47+
}
48+
49+
.label {
50+
font-family: 'IBM Plex Mono', monospace;
51+
font-size: 13px;
52+
font-weight: 400;
53+
text-transform: uppercase;
54+
letter-spacing: 0.2em;
55+
color: rgba(0, 0, 0, 0.3);
56+
margin-bottom: 24px;
57+
}
58+
59+
h1 {
60+
font-size: 72px;
61+
font-weight: 300;
62+
letter-spacing: -2px;
63+
line-height: 1.05;
64+
color: rgba(0, 0, 0, 0.88);
65+
margin-bottom: 20px;
66+
}
67+
68+
.tagline {
69+
font-size: 24px;
70+
font-weight: 400;
71+
color: rgba(0, 0, 0, 0.4);
72+
line-height: 1.5;
73+
margin-bottom: 40px;
74+
}
75+
76+
.pill {
77+
display: inline-block;
78+
padding: 12px 28px;
79+
background: rgba(0, 0, 0, 0.04);
80+
border: 1px solid rgba(0, 0, 0, 0.06);
81+
border-radius: 8px;
82+
font-family: 'IBM Plex Mono', monospace;
83+
font-size: 17px;
84+
font-weight: 400;
85+
color: rgba(0, 0, 0, 0.5);
86+
letter-spacing: 0.02em;
87+
}
88+
89+
.footer {
90+
position: absolute;
91+
bottom: 0;
92+
left: 0;
93+
right: 0;
94+
padding: 0 100px 36px;
95+
display: flex;
96+
align-items: center;
97+
justify-content: space-between;
98+
border-top: 1px solid rgba(0, 0, 0, 0.06);
99+
padding-top: 20px;
100+
margin: 0 100px;
101+
padding-left: 0;
102+
padding-right: 0;
103+
}
104+
105+
.footer-logo {
106+
opacity: 0.3;
107+
height: 20px;
108+
}
109+
110+
.footer-url {
111+
font-family: 'IBM Plex Mono', monospace;
112+
font-size: 13px;
113+
color: rgba(0, 0, 0, 0.3);
114+
letter-spacing: 0.02em;
115+
}
116+
</style>
117+
</head>
118+
<body>
119+
<div class="ambient"></div>
120+
<div class="content">
121+
<p class="label">Continue</p>
122+
<h1>create-software-factory</h1>
123+
<p class="tagline">Scaffold AI checks and agents for any repo</p>
124+
<div>
125+
<code class="pill">npx create-software-factory</code>
126+
</div>
127+
</div>
128+
<div class="footer">
129+
<svg class="footer-logo" viewBox="27.2 27.2 52.4 48.7" xmlns="http://www.w3.org/2000/svg">
130+
<path fill="currentColor" d="M68.6,34.7l-2.7,4.7l6.8,11.9c0.1,0.1,0.1,0.2,0.1,0.3s0,0.2-0.1,0.3l-6.8,11.9l2.7,4.7l9.7-16.9L68.6,34.7
131+
L68.6,34.7z M64.9,38.8l2.7-4.7h-5.4l-2.7,4.7H64.9L64.9,38.8z M59.4,40l6.3,11h5.4l-6.3-11H59.4z M64.9,63.1l6.3-11h-5.4l-6.3,11
132+
H64.9z M59.4,64.4l2.7,4.7h5.4l-2.7-4.7H59.4L59.4,64.4z M41.1,70.2c-0.1,0-0.2,0-0.3-0.1s-0.2-0.1-0.2-0.2L33.7,58h-5.4L38,74.9
133+
h19.5l-2.7-4.7H41.1L41.1,70.2z M55.8,69.6l2.7,4.7l2.7-4.7l-2.7-4.7L55.8,69.6L55.8,69.6z M57.5,64.3H44.8L42.1,69h12.6L57.5,64.3z
134+
M43.8,63.7l-6.3-11l-2.7,4.7l6.3,11C41.1,68.4,43.8,63.7,43.8,63.7z M28.3,56.8h5.4l2.7-4.7H31C31,52.1,28.3,56.8,28.3,56.8z
135+
M40.5,33.3c0-0.1,0.1-0.2,0.2-0.2c0.1,0,0.2-0.1,0.3-0.1h13.7l2.7-4.7H38l-9.7,16.9h5.4L40.5,33.3L40.5,33.3z M36.4,51.1l-2.7-4.7
136+
h-5.4l2.7,4.7C31,51.1,36.4,51.1,36.4,51.1z M41,34.8l-6.3,11l2.7,4.7l6.3-11L41,34.8z M54.8,34.2H42.1l2.7,4.7h12.7L54.8,34.2z
137+
M58.5,38.3l2.7-4.7l-2.7-4.7l-2.7,4.7L58.5,38.3z"/>
138+
</svg>
139+
<span class="footer-url">continue.dev</span>
140+
</div>
141+
</body>
142+
</html>

.github/release.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
changelog:
2+
categories:
3+
- title: New Features
4+
labels:
5+
- enhancement
6+
- title: Bug Fixes
7+
labels:
8+
- bug
9+
- title: Documentation
10+
labels:
11+
- documentation
12+
- title: Other
13+
labels:
14+
- "*"

.github/workflows/release.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ jobs:
2727
with:
2828
node-version: "20"
2929
cache: "npm"
30+
registry-url: "https://registry.npmjs.org"
3031

3132
- name: Install dependencies
3233
run: npm ci
3334

34-
- name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
35-
run: npm audit signatures
36-
3735
- name: Release
3836
env:
3937
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40-
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_TOKEN }}
38+
NPM_CONFIG_PROVENANCE: true
4139
run: npx semantic-release

0 commit comments

Comments
 (0)