Skip to content

Commit 79f14eb

Browse files
authored
feat(open-source): establish provider-agnostic skills foundation
1 parent 31e1aa1 commit 79f14eb

28 files changed

Lines changed: 990 additions & 25 deletions

.github/CODEOWNERS

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Default ownership
2+
* @breadoncee
3+
4+
# Skill contract and validation require maintainer review
5+
/skills/ @breadoncee
6+
/scripts/validate-skills.sh @breadoncee
7+
/docs/skill-contract.md @breadoncee
8+
/docs/open-source-scope.md @breadoncee
9+
/docs/versioning.md @breadoncee
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Skill Bug Report
2+
about: Report incorrect or unsafe skill behavior
3+
labels: ["skill", "bug"]
4+
body:
5+
- type: input
6+
id: skill_name
7+
attributes:
8+
label: Skill Name
9+
placeholder: e.g. setup-docs
10+
validations:
11+
required: true
12+
13+
- type: textarea
14+
id: expected
15+
attributes:
16+
label: Expected Behavior
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: actual
22+
attributes:
23+
label: Actual Behavior
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: reproduction
29+
attributes:
30+
label: Reproduction Input
31+
description: Provide the prompt or trigger input that reproduces the issue.
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: validation_output
37+
attributes:
38+
label: Validation Output
39+
description: Paste output from scripts/validate-skills.sh if relevant.
40+
render: shell
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Skill Proposal
2+
about: Propose a new reusable skill for chalk-skills
3+
labels: ["skill", "proposal"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: Problem
9+
description: What problem should this skill solve?
10+
validations:
11+
required: true
12+
13+
- type: textarea
14+
id: proposed_skill
15+
attributes:
16+
label: Proposed Skill
17+
description: Suggested skill name, purpose, and trigger examples.
18+
placeholder: |
19+
Name: example-skill
20+
Purpose: ...
21+
Trigger examples: ...
22+
validations:
23+
required: true
24+
25+
- type: textarea
26+
id: workflow
27+
attributes:
28+
label: Proposed Workflow
29+
description: Outline expected workflow steps and outputs.
30+
validations:
31+
required: true
32+
33+
- type: checkboxes
34+
id: contract
35+
attributes:
36+
label: Contract Alignment
37+
options:
38+
- label: This proposal is provider-agnostic.
39+
required: true
40+
- label: This proposal fits `docs/open-source-scope.md`.
41+
required: true
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Skill Spec Change Request
2+
about: Propose a change to skill schema, ownership model, or validation rules
3+
labels: ["spec", "proposal"]
4+
body:
5+
- type: textarea
6+
id: current
7+
attributes:
8+
label: Current Behavior/Rule
9+
description: What does the current contract/rule do today?
10+
validations:
11+
required: true
12+
13+
- type: textarea
14+
id: requested
15+
attributes:
16+
label: Requested Change
17+
description: What should change?
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: compatibility
23+
attributes:
24+
label: Compatibility Impact
25+
description: Is this breaking? How should migration work?
26+
validations:
27+
required: true
28+
29+
- type: checkboxes
30+
id: checks
31+
attributes:
32+
label: Acknowledgements
33+
options:
34+
- label: I reviewed docs/skill-contract.md.
35+
required: true
36+
- label: I reviewed docs/open-source-scope.md.
37+
required: true

.github/pull_request_template.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## Summary
2+
3+
- What changed?
4+
- Why is this needed?
5+
6+
## Change Type
7+
8+
- [ ] New skill
9+
- [ ] Skill update (non-breaking)
10+
- [ ] Skill update (breaking)
11+
- [ ] Docs/process only
12+
13+
## Contract Checklist
14+
15+
- [ ] I followed `docs/skill-contract.md`.
16+
- [ ] I ran `scripts/validate-skills.sh` locally.
17+
- [ ] `name` matches folder name for any changed skill.
18+
- [ ] Required frontmatter keys are present (`name`, `description`, `owner`, `version`, `metadata-version`).
19+
- [ ] No provider-specific metadata files were added.
20+
21+
## Versioning Checklist (for skill behavior changes)
22+
23+
- [ ] I updated `version` in changed `SKILL.md` files using SemVer.
24+
- [ ] I explained why this is patch/minor/major.
25+
- [ ] I updated `skills/skills-index.yaml` when adding/renaming skills.
26+
27+
## Trigger Examples
28+
29+
Provide 1-3 user prompts that should trigger this skill behavior:
30+
31+
1.
32+
2.
33+
3.
34+
35+
## Validation Output
36+
37+
Paste output from:
38+
39+
```bash
40+
scripts/validate-skills.sh
41+
```
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Validate Skills
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
jobs:
10+
validate:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Validate skill metadata and provider-agnostic rules
17+
run: |
18+
bash scripts/validate-skills.sh

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Changelog
2+
3+
All notable changes to `chalk-skills` will be documented in this file.
4+
5+
The format is inspired by Keep a Changelog and uses SemVer semantics for skill versions.
6+
7+
## [Unreleased]
8+
9+
### Added
10+
11+
- Metadata contract docs: `docs/open-source-scope.md`, `docs/skill-contract.md`
12+
- Provider-agnostic validation script: `scripts/validate-skills.sh`
13+
- Skill index manifest: `skills/skills-index.yaml`
14+
- New skill: `skills/project-skill-creator/SKILL.md`
15+
16+
### Changed
17+
18+
- Standardized frontmatter across all shipped skills (`owner`, `version`, `metadata-version`)
19+
- Updated `README.md` for unified `.chalk/skills` architecture and ownership/version policy
20+
21+
### Removed
22+
23+
- Provider-specific metadata file: `skills/product-context-docs/agents/openai.yaml`

CODE_OF_CONDUCT.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Code of Conduct
2+
3+
## Our Standard
4+
5+
We are committed to a respectful, inclusive, and harassment-free community for everyone.
6+
7+
## Expected Behavior
8+
9+
- Be respectful and constructive.
10+
- Assume good intent and seek clarity.
11+
- Accept feedback with professionalism.
12+
- Focus on technical merit and community value.
13+
14+
## Unacceptable Behavior
15+
16+
- Harassment, discrimination, or intimidation
17+
- Personal attacks or abusive language
18+
- Publishing private information without consent
19+
- Disruptive behavior that undermines collaboration
20+
21+
## Enforcement
22+
23+
Maintainers may remove comments, reject contributions, or restrict participation for violations.
24+
25+
## Reporting
26+
27+
Report issues privately to maintainers via channels listed in `SECURITY.md` and `SUPPORT.md`.

CONTRIBUTING.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Contributing
2+
3+
Thanks for contributing to `chalk-skills`.
4+
5+
## Scope
6+
7+
Contribute provider-agnostic, reusable skills and supporting tooling only. Review scope boundaries in `docs/open-source-scope.md`.
8+
9+
## Before Opening a PR
10+
11+
1. Confirm the skill fits the open-source scope.
12+
2. Follow the skill contract in `docs/skill-contract.md`.
13+
3. Run validation locally:
14+
15+
```bash
16+
scripts/validate-skills.sh
17+
```
18+
19+
4. Keep behavior changes intentional and bump `version` using SemVer.
20+
21+
## Create a New Skill
22+
23+
Use the scaffold script for consistent initialization:
24+
25+
```bash
26+
scripts/init-skill.sh <skill-name> --description "what it does and when to use it" --owner chalk
27+
```
28+
29+
For project-owned skills in external repos:
30+
31+
```bash
32+
scripts/init-skill.sh <skill-name> --description "..." --owner project --path .chalk/skills
33+
```
34+
35+
## Skill Change Requirements
36+
37+
- Keep `name`, folder name, and index entry aligned.
38+
- Include required frontmatter keys.
39+
- Use `owner: chalk` for core repo skills.
40+
- Do not add provider-specific metadata files.
41+
- Keep `SKILL.md` concise and practical.
42+
43+
## Pull Request Guidelines
44+
45+
- Explain what changed and why.
46+
- Include trigger examples for new/updated skills.
47+
- Call out any compatibility impact.
48+
- Update `skills/skills-index.yaml` when adding or renaming skills.
49+
- Update `CHANGELOG.md` for notable user-facing behavior or contract changes.
50+
51+
## Review Criteria
52+
53+
- Contract compliance (`docs/skill-contract.md`)
54+
- Clear, deterministic workflow steps
55+
- Safe defaults and guardrails
56+
- No vendor lock-in in definitions or metadata
57+
58+
Use `docs/review-checklist.md` during review.
59+
60+
## Versioning
61+
62+
Follow `docs/versioning.md` for SemVer bump rules and metadata-version migration policy.
63+
64+
## Maintainers and Review SLA
65+
66+
- Core skill and contract changes require maintainer approval (see `.github/CODEOWNERS`).
67+
- Target first maintainer response within 3 business days.
68+
- Target decision (merge/request changes) within 7 business days for complete PRs.

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 Chalk
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)