Skip to content

Commit f3cb69f

Browse files
committed
feat(community): SECURITY, CoC, templates, CHANGELOG, ROADMAP
- SECURITY.md — in-scope / out-of-scope threat model, private advisory flow, 72h/14d/30d/90d timeline, what to report vs what not to. - CODE_OF_CONDUCT.md — short link-based Contributor Covenant 2.1 adoption with scope + enforcement contact + ladder reference. - .github/CODEOWNERS — @zakelfassi on everything, with stricter patterns for cli/, extensions/, workflows, .colony.json. - .github/FUNDING.yml — GitHub Sponsors entry. - .github/ISSUE_TEMPLATE/ — four YAML form templates (bug-report, feature-request, new-skill, rfc) wired into the GH issue picker. - .github/PULL_REQUEST_TEMPLATE.md — skill quality checklist, CLI/tooling checklist, and test plan. - CHANGELOG.md — Keep-a-Changelog 1.1.0 format with retroactive 0.1.0 / 0.2.0 / 0.3.0 entries and an Unreleased section. - ROADMAP.md — tranche status table (P0-P5 + E/F/G/H), manual GitHub-settings checklist, near-term candidates, explicit non-goals, and a "how to influence the roadmap" section.
1 parent 3c84a97 commit f3cb69f

11 files changed

Lines changed: 632 additions & 0 deletions

File tree

.github/CODEOWNERS

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# SkDD code owners — see https://docs.github.com/en/repositories/managing-your-repositories-settings-and-security/customizing-your-repository/about-code-owners
2+
#
3+
# Each line is a file pattern followed by one or more owners. The last matching
4+
# pattern wins, so put specific rules after general ones.
5+
6+
# Default owner for everything in the repo
7+
* @zakelfassi
8+
9+
# Methodology docs — open to any SkDD maintainer once the team grows
10+
/docs/ @zakelfassi
11+
/colony/ @zakelfassi
12+
/skillforge/ @zakelfassi
13+
14+
# CLI is the highest-risk surface — always requires @zakelfassi review
15+
/cli/ @zakelfassi
16+
/extensions/vscode/ @zakelfassi
17+
18+
# CI workflows + security-sensitive files — restrict to @zakelfassi
19+
/.github/workflows/ @zakelfassi
20+
/.github/CODEOWNERS @zakelfassi
21+
/SECURITY.md @zakelfassi
22+
/CODE_OF_CONDUCT.md @zakelfassi
23+
24+
# Manifest + spec files — restrict
25+
/.colony.json @zakelfassi
26+
/docs/spec/ @zakelfassi

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# GitHub Sponsors and other funding links for Skills-Driven Development.
2+
# Uncomment and fill in the ones that apply. The file must exist for GitHub's
3+
# "Sponsor" button to appear in the repo header.
4+
5+
github: [zakelfassi]
6+
# patreon: # not set up
7+
# open_collective: # not set up
8+
# ko_fi: # not set up
9+
# tidelift: # not set up
10+
# community_bridge: # not set up
11+
# liberapay: # not set up
12+
# issuehunt: # not set up
13+
# otechie: # not set up
14+
# lfx_crowdfunding: # not set up
15+
# custom: # https://zakelfassi.com/sponsor — when it exists
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: Bug report
2+
description: Something in the CLI, the methodology docs, or the VS Code extension is broken.
3+
title: "[bug] "
4+
labels: ["bug", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to file a bug! Before submitting, please search existing issues to avoid duplicates.
10+
11+
If this is a **security vulnerability**, do NOT file it here — use the [private advisory flow](https://github.com/zakelfassi/skills-driven-development/security/advisories) instead.
12+
13+
- type: dropdown
14+
id: component
15+
attributes:
16+
label: Affected component
17+
description: Which part of SkDD is misbehaving?
18+
options:
19+
- skdd CLI (init / forge / validate / link / doctor / import / list / sync)
20+
- VS Code extension (extensions/vscode)
21+
- Methodology docs
22+
- skillforge meta-skill
23+
- Claude Code plugin (plugins/skdd-claude)
24+
- Colony manifest (.colony.json) / JSON Schema
25+
- Other / not sure
26+
validations:
27+
required: true
28+
29+
- type: input
30+
id: version
31+
attributes:
32+
label: skdd CLI version
33+
description: Output of `skdd --version` (if CLI-related). Otherwise leave blank.
34+
placeholder: "0.3.0"
35+
36+
- type: input
37+
id: node
38+
attributes:
39+
label: Node.js version
40+
description: Output of `node --version`
41+
placeholder: "v20.x"
42+
43+
- type: dropdown
44+
id: os
45+
attributes:
46+
label: Operating system
47+
options:
48+
- macOS
49+
- Linux
50+
- Windows
51+
- Other
52+
validations:
53+
required: true
54+
55+
- type: dropdown
56+
id: harness
57+
attributes:
58+
label: Agent harness (if relevant)
59+
description: Which harness were you using when you hit the bug?
60+
options:
61+
- Claude Code
62+
- OpenAI Codex
63+
- Cursor
64+
- GitHub Copilot
65+
- Gemini CLI
66+
- OpenCode
67+
- Goose
68+
- Amp
69+
- Roo Code
70+
- Junie
71+
- VS Code (Copilot / Agent Mode)
72+
- Not harness-related
73+
74+
- type: textarea
75+
id: what-happened
76+
attributes:
77+
label: What happened?
78+
description: Describe the bug. What command did you run, what did you expect, and what did you observe instead?
79+
placeholder: |
80+
I ran `skdd link --harness=claude,codex` in a fresh project and …
81+
validations:
82+
required: true
83+
84+
- type: textarea
85+
id: repro
86+
attributes:
87+
label: Steps to reproduce
88+
description: Minimal steps, starting from a clean directory if possible.
89+
placeholder: |
90+
1. mkdir /tmp/repro && cd /tmp/repro
91+
2. pnpm dlx skdd init --harness=claude
92+
3. ...
93+
render: shell
94+
validations:
95+
required: true
96+
97+
- type: textarea
98+
id: logs
99+
attributes:
100+
label: Relevant output / logs
101+
description: Include the exact CLI output, stack traces, or `.skdd-sync.json` state if applicable. Use `SKDD_DEBUG=1` for verbose logging.
102+
render: shell
103+
104+
- type: textarea
105+
id: extra
106+
attributes:
107+
label: Anything else?
108+
description: Context, screenshots, workspace layout, `.colony.json`, etc.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Feature request
2+
description: Propose a new feature, command, or docs improvement for SkDD.
3+
title: "[feat] "
4+
labels: ["enhancement", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
For **large design changes** (new spec fields, new CLI subcommands with significant surface area, new harness integrations), please use the [RFC template](./new?template=rfc.yml) instead.
10+
11+
- type: dropdown
12+
id: area
13+
attributes:
14+
label: Area
15+
options:
16+
- skdd CLI
17+
- VS Code extension
18+
- Methodology docs
19+
- skillforge meta-skill
20+
- Claude Code plugin
21+
- Colony manifest / JSON Schema
22+
- Harness integration
23+
- CI / tooling
24+
- Other
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: problem
30+
attributes:
31+
label: What problem does this solve?
32+
description: Describe the pain point you hit. "I wanted to do X but couldn't because …"
33+
validations:
34+
required: true
35+
36+
- type: textarea
37+
id: proposal
38+
attributes:
39+
label: Proposed solution
40+
description: A rough sketch. API surface, commands, flags, or doc structure. Don't worry about perfect wording — we'll iterate.
41+
validations:
42+
required: true
43+
44+
- type: textarea
45+
id: alternatives
46+
attributes:
47+
label: Alternatives considered
48+
description: Other approaches you thought about, and why they're worse. Even "I couldn't think of an alternative" is a valid answer.
49+
50+
- type: textarea
51+
id: extra
52+
attributes:
53+
label: Anything else?
54+
description: Screenshots, links to similar features in other tools, related issues, etc.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: New skill proposal
2+
description: Propose a new skill for the skillforge or examples directory — or request one you'd find useful.
3+
title: "[skill] "
4+
labels: ["new-skill", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
SkDD's bias is **forge, don't front-load** — skills get created when agents notice real repetition, not upfront. Use this template when:
10+
11+
- You've already forged a skill in a real project and want to upstream it
12+
- You're requesting a skill as a "would be useful" — we'll mark it `help-wanted` for someone to forge
13+
- You want feedback on a skill draft before PR'ing it
14+
15+
- type: dropdown
16+
id: status
17+
attributes:
18+
label: Status
19+
options:
20+
- I've already forged this skill and want to upstream it
21+
- I have a draft I want feedback on
22+
- I'm requesting that someone forge this skill
23+
validations:
24+
required: true
25+
26+
- type: input
27+
id: name
28+
attributes:
29+
label: Proposed skill name
30+
description: Must be kebab-case, 1-64 characters, matching the directory name. See the quality checklist in CONTRIBUTING.md.
31+
placeholder: "deploy-preview"
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: description
37+
attributes:
38+
label: Description
39+
description: The frontmatter `description` field — 1-1024 chars. Should include trigger language like "Use when …" so agents can discover it by matching the prompt.
40+
placeholder: "Deploy the current branch to staging and return the preview URL. Use when I say 'push a preview' or 'deploy this branch'."
41+
validations:
42+
required: true
43+
44+
- type: textarea
45+
id: trigger
46+
attributes:
47+
label: Trigger phrases
48+
description: Specific things a user might say that should activate this skill. Helps calibrate the description.
49+
placeholder: |
50+
- "Deploy a preview"
51+
- "Push this branch to staging"
52+
- "Give me a preview URL"
53+
54+
- type: textarea
55+
id: steps
56+
attributes:
57+
label: Steps (rough)
58+
description: What the agent should do, in order. Imperative mood, copy-pasteable. Don't worry about polish.
59+
placeholder: |
60+
1. git push to preview branch
61+
2. Run deploy-preview.sh
62+
3. Parse the preview URL from output
63+
4. Post URL back to the user
64+
65+
- type: dropdown
66+
id: target
67+
attributes:
68+
label: Target location
69+
options:
70+
- skillforge/ (methodology — rarely changes)
71+
- examples/webapp-starter/skills/ (reference example)
72+
- plugins/skdd-claude/skills/ (Claude Code plugin bundle)
73+
- Not sure — need guidance
74+
validations:
75+
required: true
76+
77+
- type: textarea
78+
id: extra
79+
attributes:
80+
label: Anything else?
81+
description: Scripts the skill needs, dependencies, edge cases you've hit, related skills it composes with.

.github/ISSUE_TEMPLATE/rfc.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: RFC — Design proposal
2+
description: Propose a larger design change to SkDD (new spec fields, new CLI subcommand, new harness integration, methodology shift).
3+
title: "[rfc] "
4+
labels: ["rfc", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
RFCs are for changes that are too big for a normal feature request and deserve design review before implementation starts.
10+
11+
**If you're not sure whether something is RFC-sized, just use the [feature request template](./new?template=feature-request.yml) and we'll ask you to convert if needed.**
12+
13+
Draft PRs with `[RFC]` in the title are also an acceptable way to propose changes — especially if you have a prototype implementation to anchor the discussion.
14+
15+
- type: textarea
16+
id: summary
17+
attributes:
18+
label: Summary
19+
description: One paragraph that answers "what is this proposing, and why?" A skim-reader should be able to decide whether this RFC is relevant to them from the summary alone.
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: motivation
25+
attributes:
26+
label: Motivation
27+
description: The problem this RFC solves. Include concrete examples (code, commands, user stories) where possible. If there's prior art in other tools, link it.
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: design
33+
attributes:
34+
label: Design sketch
35+
description: What do you propose? API surface, file layout, command flags, migration path. Pseudocode is fine. Trade-offs go in the next section.
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: tradeoffs
41+
attributes:
42+
label: Tradeoffs & alternatives
43+
description: What are the downsides? What did you consider and reject? What's the reversal cost if we ship this and regret it?
44+
validations:
45+
required: true
46+
47+
- type: textarea
48+
id: compat
49+
attributes:
50+
label: Compatibility impact
51+
description: Does this break existing `.colony.json` files, existing skills, existing CLI invocations, existing CI? How would users migrate?
52+
53+
- type: textarea
54+
id: scope
55+
attributes:
56+
label: Out of scope
57+
description: Things explicitly NOT covered by this RFC. Helps prevent scope creep in the review thread.
58+
59+
- type: textarea
60+
id: plan
61+
attributes:
62+
label: Implementation plan (optional)
63+
description: Rough milestones if you have a sense of them. E.g. "M1 CLI plumbing, M2 docs, M3 migration tool." Fine to leave blank — we can plan later.

0 commit comments

Comments
 (0)