Skip to content
This repository was archived by the owner on Jun 19, 2026. It is now read-only.

Commit ae88989

Browse files
Initial release: 12 programming skills for AI agents
Language-agnostic skills that enforce fundamental programming principles across Cursor, Antigravity, and GitHub Copilot.
0 parents  commit ae88989

26 files changed

Lines changed: 3590 additions & 0 deletions

File tree

.gitattributes

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto
3+
4+
# Explicitly declare text files with LF endings for Unix/Linux compatibility
5+
*.sh text eol=lf
6+
*.yml text eol=lf
7+
*.yaml text eol=lf
8+
*.md text eol=lf
9+
*.json text eol=lf
10+
11+
# Windows scripts with CRLF
12+
*.ps1 text eol=crlf
13+
*.bat text eol=crlf
14+
*.cmd text eol=crlf
15+
16+
# Binary files
17+
*.zip binary
18+
*.png binary
19+
*.jpg binary
20+
*.jpeg binary
21+
*.gif binary
22+
*.ico binary
23+
*.pdf binary

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## Changes
2+
<!-- Brief description of what changed -->
3+
4+
## Skill Impact
5+
<!-- Which skills were added/modified? Why was this change needed? -->
6+
7+
## Testing
8+
<!-- How did you test this change? -->
9+
10+
## Checklist
11+
- [ ] Updated CHANGELOG.md (if skill change)
12+
- [ ] Updated README.md (if new skill)
13+
- [ ] Tested locally with AI assistant (if skill change)
14+
- [ ] Followed pseudocode format (no language-specific code)
15+
- [ ] Used AAA pattern for test examples
16+
- [ ] PR title follows format: `<type>: <description>`
17+
18+
## Type
19+
<!-- Check one -->
20+
- [ ] feat: New skill added
21+
- [ ] improve: Existing skill improved
22+
- [ ] fix: Bug fix or correction
23+
- [ ] docs: Documentation only changes
24+
- [ ] chore: Build, CI/CD, or tooling changes

.github/copilot/instructions.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Copilot Instructions for basic-programming-skills Repository
2+
3+
## Communication Style
4+
5+
- **Minimal responses**: When a task is complete, respond with minimal confirmation like "done" or "done [brief description]"
6+
- **No summaries**: Don't generate summaries of changes unless explicitly requested
7+
- **No extra files**: Don't create planning files, notes, or tracking documents in the repository
8+
- **Action-focused**: Execute tasks directly without lengthy explanations unless asked
9+
10+
## Repository Structure
11+
12+
This is a **skills collection repository** with the following structure:
13+
14+
```
15+
basic-programming-skills/
16+
├── skills/ # programming skills (SKILL.md files)
17+
├── ci/ # Release automation scripts
18+
├── .github/workflows/ # CI/CD pipelines
19+
└── docs/ # Documentation
20+
```
21+
22+
## Code Principles
23+
24+
### Skills Format (v1.0.0)
25+
26+
- Use **pseudocode only** - no language-specific code examples
27+
- Follow **AAA pattern** for all test examples (Arrange-Act-Assert)
28+
- Keep examples clear and language-agnostic
29+
- Structure: Principle → When to Use → Instructions → Examples → Testing
30+
31+
### Documentation
32+
33+
- README.md is a **reference index** - keep it short
34+
- Detailed content belongs in `docs/` folder
35+
- Don't duplicate documentation across files
36+
- Use tables and diagrams (mermaid) for clarity
37+
38+
### Scripts
39+
40+
- All shell commands in `ci/` folder - no inline scripts in workflows
41+
- Shell scripts must have LF line endings (enforced by .gitattributes)
42+
- Make scripts executable: `chmod +x`
43+
44+
## Version Management
45+
46+
- **v1.0.0** format: Simple pseudocode-based skills
47+
- Track changes in CHANGELOG.md
48+
- Only document skills changes, not infrastructure changes
49+
- Follow semantic versioning: Major.Minor.Patch
50+
51+
## PR and Commit Format
52+
53+
**PR Title Format:**
54+
```
55+
<type>: <description>
56+
57+
Types:
58+
- feat: New skill added
59+
- improve: Existing skill improved
60+
- fix: Bug fix or correction
61+
- docs: Documentation only
62+
- chore: Build, CI/CD, tooling
63+
```
64+
65+
## File Handling
66+
67+
- Don't create temporary/planning markdown files
68+
- Update CHANGELOG.md for skill changes only
69+
- Keep .gitignore minimal and relevant
70+
- Use .gitattributes for line ending consistency
71+
72+
## When Working on Skills
73+
74+
1. **Adding new skill**: Create `skills/skill-name/SKILL.md`
75+
2. **Update required**: README.md (table), CHANGELOG.md (if skill change)
76+
3. **Test format**: Always use AAA pattern with comments
77+
4. **Examples**: Good (✅) and Bad (❌) with explanations
78+
79+
## CI/CD
80+
81+
- Release on git tags: `v*`
82+
- Generate two artifacts: `cursor-antigravity.zip`, `copilot.zip`
83+
- Auto-generate release notes from merged PRs
84+
- Artifacts retention: 1 day (only needed during workflow)
85+
86+
## Don't
87+
88+
- ❌ Create `plan.md` or tracking files
89+
- ❌ Write lengthy summaries after completing tasks
90+
- ❌ Add language-specific code examples to skills
91+
- ❌ Duplicate content between README and docs/
92+
- ❌ Inline shell commands in workflow YAML
93+
- ❌ Update CHANGELOG for non-skill changes
94+
95+
## Do
96+
97+
- ✅ Respond with "done [brief note]" when task complete
98+
- ✅ Use pseudocode for all examples
99+
- ✅ Follow AAA pattern for tests
100+
- ✅ Keep scripts in ci/ folder
101+
- ✅ Update CHANGELOG for skill additions/changes
102+
- ✅ Keep README as a reference index

.github/workflows/release.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Build and Release Skills
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
name: Build Skills (${{ matrix.platform }})
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
platform: [cursor-antigravity, copilot]
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Build package
24+
run: |
25+
chmod +x ci/release.sh
26+
./ci/release.sh ${{ matrix.platform }}
27+
28+
- name: Upload artifact
29+
uses: actions/upload-artifact@v4
30+
with:
31+
name: ${{ matrix.platform }}
32+
path: ${{ matrix.platform }}.zip
33+
retention-days: 1
34+
35+
release:
36+
name: Create Release
37+
needs: build
38+
runs-on: ubuntu-latest
39+
40+
steps:
41+
- name: Checkout code
42+
uses: actions/checkout@v4
43+
44+
- name: Download all artifacts
45+
uses: actions/download-artifact@v4
46+
with:
47+
path: artifacts
48+
49+
- name: Collect artifacts
50+
run: |
51+
chmod +x ci/collect-artifacts.sh
52+
./ci/collect-artifacts.sh
53+
54+
- name: Create Release
55+
uses: softprops/action-gh-release@v2
56+
with:
57+
files: "*.zip"
58+
generate_release_notes: true
59+
body: |
60+
## 📦 Installation
61+
62+
**One-line install:**
63+
```bash
64+
# Linux/macOS - Cursor/Antigravity
65+
curl -L https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/cursor-antigravity.zip -o skills.zip && unzip skills.zip -d .cursor/skills && rm skills.zip
66+
67+
# Windows (PowerShell)
68+
Invoke-WebRequest -Uri "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/cursor-antigravity.zip" -OutFile "skills.zip"; Expand-Archive -Path "skills.zip" -DestinationPath ".cursor\skills" -Force; Remove-Item "skills.zip"
69+
```
70+
71+
**Available packages:**
72+
- `cursor-antigravity.zip` - For Cursor & Antigravity
73+
- `copilot.zip` - For GitHub Copilot
74+
75+
See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details.
76+
draft: false
77+
prerelease: false

.gitignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# .gitignore
2+
3+
# Editor and OS files
4+
.DS_Store
5+
Thumbs.db
6+
*.swp
7+
*.swo
8+
*~
9+
.vscode/
10+
.idea/
11+
*.code-workspace
12+
13+
# Logs and temp files
14+
*.log
15+
npm-debug.log*
16+
yarn-debug.log*
17+
yarn-error.log*
18+
19+
# Testing artifacts
20+
test-output/
21+
coverage/
22+
*.test.js
23+
*.test.ts
24+
25+
# Build artifacts
26+
*.min.js
27+
*.min.css
28+
29+
# Dependencies (if we add any tooling later)
30+
node_modules/
31+
__pycache__/
32+
*.pyc
33+
.venv/
34+
venv/
35+
36+
# Local development
37+
.env
38+
.env.local
39+
.env.*.local
40+
41+
# Generated files
42+
generated-*
43+
temp-*
44+
scratch-*
45+
*.zip

CHANGELOG.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Changelog
2+
3+
All notable changes to the skills collection will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Initial 12 programming skills with pseudocode examples
12+
13+
### Changed
14+
- Restructured from language-specific examples to pseudocode format
15+
16+
## [1.0.0] - 2026-01-27
17+
18+
### Added
19+
- **Functional Core Imperative Shell** - Separate pure logic from effects
20+
- **Explicit State Invariants** - Design state with clear invariants
21+
- **Single Direction Data Flow** - Unidirectional data flow
22+
- **Explicit Boundaries Adapters** - Isolate frameworks
23+
- **Local Reasoning** - Understandable locally
24+
- **Naming as Design** - Intent-revealing names
25+
- **Error Handling Design** - Model errors explicitly
26+
- **Policy Mechanism Separation** - Separate what from how
27+
- **Explicit Ownership Lifecycle** - Clear resource ownership
28+
- **Minimize Mutation** - Control mutation
29+
- **Composition Over Coordination** - Compose, don't orchestrate
30+
- **Illegal States Unrepresentable** - Prevent misuse structurally
31+
32+
### Architecture
33+
- Simple pseudocode-based format (v1.0.0)
34+
- Single release for all platforms (cursor-antigravity.zip, copilot.zip)
35+
- No build process required
36+
- Language-agnostic approach
37+
38+
---
39+
40+
## Version Format
41+
42+
**Major.Minor.Patch** (e.g., 1.2.3)
43+
44+
- **Major**: Breaking changes to skill format or structure
45+
- **Minor**: New skills added or significant skill improvements
46+
- **Patch**: Bug fixes, typo corrections, minor clarifications
47+
48+
## Change Categories
49+
50+
- **Added**: New skills or features
51+
- **Changed**: Modifications to existing skills
52+
- **Deprecated**: Skills marked for removal
53+
- **Removed**: Skills deleted
54+
- **Fixed**: Bug fixes or corrections
55+
- **Security**: Security-related changes

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 Basic Programming Skills Contributors
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)