Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
e99fce1
chore: initial fork from OpenSpec v0.23.0
viteinfinite Feb 5, 2026
0cb2487
chore: rename openspec to lightspec in package metadata
viteinfinite Feb 5, 2026
1ec1393
feat: create skills directory structure for 3 agent skills
viteinfinite Feb 5, 2026
2a57d9d
feat: add lightspec-new skill
viteinfinite Feb 5, 2026
10896f6
feat: add lightspec-apply skill
viteinfinite Feb 5, 2026
8938cfa
feat: add lightspec-archive skill
viteinfinite Feb 5, 2026
377ab50
refactor: update CLI name from openspec to lightspec
viteinfinite Feb 5, 2026
8e08f38
refactor: update CLI name from openspec to lightspec
viteinfinite Feb 5, 2026
bed092c
fix: resolve TypeScript compilation errors for LightSpec build
viteinfinite Feb 5, 2026
7ee65e3
chore: remove obsolete bin/openspec.js
viteinfinite Feb 5, 2026
72aae74
docs: add skills documentation and fork notice
viteinfinite Feb 5, 2026
d4e2407
docs: add implementation summary
viteinfinite Feb 5, 2026
6f3b57c
test: update CLI references from openspec to lightspec
viteinfinite Feb 5, 2026
7ac4aac
refactor(core): rename openspec runtime identifiers to lightspec
viteinfinite Feb 7, 2026
1da8a22
test: migrate fixtures and expectations to lightspec naming
viteinfinite Feb 7, 2026
573f667
docs: update project documentation to lightspec terminology
viteinfinite Feb 7, 2026
50ed023
skills: Add disable-model-invocation when necessary
viteinfinite Feb 7, 2026
e2f65b2
npm: add new repository url
viteinfinite Feb 7, 2026
d982730
security: remove posthog
viteinfinite Feb 7, 2026
d354390
docs: update MAINTAINERS.md
viteinfinite Feb 7, 2026
6b4a2a9
refactor!: remove experimental workflow and OpenSpec artifacts
viteinfinite Feb 7, 2026
aab3525
test: fix malformed CLI command string assertions
viteinfinite Feb 7, 2026
dea5511
chore: update GitHub workflows to use LightSpec branding
viteinfinite Feb 7, 2026
c537110
chore: update Nix flake to use LightSpec branding
viteinfinite Feb 7, 2026
532d1b4
chore: fix repository reference in changeset config
viteinfinite Feb 7, 2026
4678391
docs: update changeset template with correct package name
viteinfinite Feb 7, 2026
9664ef5
docs: update dev container branding to LightSpec
viteinfinite Feb 7, 2026
ad8476f
chore: update LICENSE copyright to LightSpec
viteinfinite Feb 7, 2026
bce34cf
chore: update CODEOWNERS
viteinfinite Feb 7, 2026
75785a1
chore: update CLI banner from OPENSPEC to LIGHTSPEC
viteinfinite Feb 7, 2026
ddce032
chore: remove dead code and documentation from experimental workflow
viteinfinite Feb 7, 2026
5a95270
chore: npm package management
viteinfinite Feb 7, 2026
037babb
chore: add changeset for initial fork release
viteinfinite Feb 5, 2026
8790644
chore(release): version packages
viteinfinite Feb 7, 2026
90f851c
Merge pull request #1 from augmenter-dev/chore/release-version-packages
viteinfinite Feb 7, 2026
f6171bc
fix(release): derive package path in pack version check
viteinfinite Feb 7, 2026
0aaf464
fix(init): render full LIGHTSPEC banner
viteinfinite Feb 7, 2026
ea05cad
chore(deps): bump changesets cli to 2.29.8
viteinfinite Feb 7, 2026
934e9f8
feat: replace project.md with context-check skill
viteinfinite Feb 7, 2026
966f14f
feat: add context-check skill to all AI tool configurators
viteinfinite Feb 7, 2026
fec0193
refactor: update init success message for context-check skill
viteinfinite Feb 7, 2026
edf1f4a
test: update init tests for project.md removal
viteinfinite Feb 7, 2026
0d686af
docs: update README to reference context-check skill
viteinfinite Feb 7, 2026
70cb6a6
docs: add lightspec proposal for project.md replacement
viteinfinite Feb 7, 2026
8433ece
context-check: improve template
viteinfinite Feb 7, 2026
459f422
feat(skills): migrate provider prompts/commands to SKILL.md installs
viteinfinite Feb 7, 2026
93c8a08
test(skills): cover SKILL.md paths, frontmatter, and home install
viteinfinite Feb 7, 2026
51fa6fa
refactor: extract shared ItemType type to eliminate duplication
viteinfinite Feb 7, 2026
f5b6522
refactor(telemetry): remove unused parameters from trackCommand
viteinfinite Feb 7, 2026
3629965
chore(init): remove obsolete Codex setup note
viteinfinite Feb 7, 2026
87f4e7f
feat(init): add Mistral Vibe tool support with .vibe skills
viteinfinite Feb 7, 2026
f7776e8
chore(release): add changeset for v0.2.0
viteinfinite Feb 7, 2026
f97de4f
fix(release): fallback to github token when app secrets missing
viteinfinite Feb 7, 2026
9ef5a43
fix(release): make app-token step non-blocking
viteinfinite Feb 7, 2026
1f81152
fix(release): use repo pnpm version in release workflow
viteinfinite Feb 7, 2026
39db1c5
Version Packages
github-actions[bot] Feb 7, 2026
864c4d7
Merge pull request #2 from augmenter-dev/changeset-release/main
viteinfinite Feb 7, 2026
4880a81
docs(branding): refresh README visuals and logo assets
viteinfinite Feb 7, 2026
e4f338f
chore(repo): point feedback flows to augmenter-dev/LightSpec
viteinfinite Feb 7, 2026
489b986
fix(docs): remove reference to "new" command
viteinfinite Feb 7, 2026
2ff86f0
chore(release): add changeset for v0.2.2
viteinfinite Feb 7, 2026
3089b39
fix(release): add NPM_TOKEN fallback for publish auth
viteinfinite Feb 7, 2026
8150df4
Version Packages
viteinfinite Feb 7, 2026
342a866
Merge pull request #3 from augmenter-dev/changeset-release/main
viteinfinite Feb 7, 2026
406a89d
chore(release): remove NPM_TOKEN fallback and rely on OIDC
viteinfinite Feb 7, 2026
a2dc6a0
chore(release): retrigger release workflow
viteinfinite Feb 8, 2026
ef14e9c
fix(release): grant actions write permission for polish dispatch
viteinfinite Feb 8, 2026
9193472
fix(release): skip polish when Claude credentials are missing
viteinfinite Feb 8, 2026
64b90b5
fix(release): gate polish step on detected Claude auth
viteinfinite Feb 8, 2026
13c3fa4
docs(readme): align supported AI tools with actual integrations
viteinfinite Feb 8, 2026
50ce060
docs(readme): refresh project intro and positioning copy
viteinfinite Feb 8, 2026
8d0eed8
docs(readme): update setup wording from slash commands to skills
viteinfinite Feb 8, 2026
ce7b439
chore(release): add changeset for v0.2.2
viteinfinite Feb 8, 2026
abb029a
Version Packages
github-actions[bot] Feb 8, 2026
bef8a8d
ci: remove hardcoded pnpm version to honor packageManager
viteinfinite Feb 8, 2026
49b6865
ci: remove hardcoded pnpm version to honor packageManager
viteinfinite Feb 8, 2026
8855d35
nix: refresh fetchPnpmDeps hash
viteinfinite Feb 8, 2026
ac448ea
Merge pull request #4 from augmenter-dev/changeset-release/main
viteinfinite Feb 8, 2026
e1f9c33
refactor skills setup to use generic agent skill configurator
viteinfinite Feb 9, 2026
ba6e8a7
chore update remaining slash-command wording in templates
viteinfinite Feb 9, 2026
c7fc839
update root instruction stub to point complex work to lightspec-proposal
viteinfinite Feb 9, 2026
454077a
test claude file creation when .claude exists and ignore local demo t…
viteinfinite Feb 9, 2026
5c8c61b
chore(release): add changeset for agent skill migration updates
viteinfinite Feb 9, 2026
1d0b649
chore(release): add manual local release script
viteinfinite Feb 9, 2026
5bdb8f2
chore(release): add add changeset
viteinfinite Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .changeset/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ Follow the prompts to select version bump type and describe your changes.
2. **Version PR** — CI opens/updates a "Version Packages" PR when changesets merge to main
3. **Release** — Merging the Version PR triggers npm publish and GitHub Release

> **Note:** Contributors only need to run `pnpm changeset`. Versioning (`changeset version`) and publishing happen automatically in CI.
> **Note:** Contributors only need to run `pnpm changeset`. Versioning and publishing are run via the manual release workflow (`release-prepare`) or local manual release script.

## Template

Use this structure for your changeset content:

```markdown
---
"@fission-ai/openspec": patch
"@augmenter-dev/lightspec": patch
---

### New Features
Expand Down
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://unpkg.com/@changesets/config/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "Fission-AI/OpenSpec" }
{ "repo": "augmenter-dev/lightspec" }
],
"commit": false,
"fixed": [],
Expand Down
5 changes: 5 additions & 0 deletions .changeset/thin-pigs-stare.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"lightspec": patch
---

Minor CI updates
Empty file.
58 changes: 58 additions & 0 deletions .claude/skills/lightspec-apply/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
name: lightspec-apply
description: Get instructions for implementing a change
disable-model-invocation: true
---

Generate enriched instructions for implementing the tasks in a change.

## Usage

Use this skill when ready to implement the tasks for a change.

## What This Does

1. Shows which artifacts are complete and which are pending
2. Displays task progress with checkboxes
3. Provides context files to read
4. Gives implementation instructions
5. Shows what's blocking progress (if anything)

## Implementation

Use the CLI command:
```bash
lightspec instructions apply [options]
```

### Options

- `--change <id>`: Change name (auto-detected if only one change)
- `--schema <name>`: Schema override (auto-detected from change metadata)
- `--json`: Output as JSON (for agents/automation)

### Example

```bash
# Get apply instructions for the current change
lightspec instructions apply

# Get apply instructions for a specific change
lightspec instructions apply --change add-user-authentication

# Get JSON output for automation
lightspec instructions apply --json
```

## Output Interpretation

The command shows:
- **Progress**: X/Y tasks complete
- **State**: ready (all artifacts complete), blocked (missing artifacts), or all_done (all tasks complete)
- **Context Files**: List of artifacts to read for context
- **Tasks**: Checklist with [x] for done, [ ] for pending
- **Instruction**: Implementation guidance

## When Blocked

If the state is "blocked", create missing artifacts first using the lightspec-new skill for each artifact, or run `lightspec new change <name>` to continue.
Empty file.
60 changes: 60 additions & 0 deletions .claude/skills/lightspec-archive/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: lightspec-archive
description: Archive a completed change and update main specs
disable-model-invocation: true
---

Archive a completed change, merging delta specs into main specifications.

## Usage

Use this skill when:
- A change is fully implemented
- All tasks are complete
- Tests pass
- Ready to integrate changes into main specs

## What This Does

1. Validates the change (unless --no-validate)
2. Merges delta specs from the change into main specs
3. Moves the change to the archive
4. Updates spec versions

## Implementation

Use the CLI command:
```bash
lightspec archive [change-name] [options]
```

### Options

- `-y, --yes`: Skip confirmation prompts
- `--skip-specs`: Skip spec update (for infrastructure/tooling/doc-only changes)
- `--no-validate`: Skip validation (not recommended, requires confirmation)

### Example

```bash
# Archive with prompts
lightspec archive add-user-authentication

# Archive without confirmation
lightspec archive add-user-authentication -y

# Archive infrastructure change (no spec updates)
lightspec archive upgrade-dependencies --skip-specs -y
```

## Before Archiving

Ensure:
1. All code changes are committed
2. Tests pass
3. Artifacts are complete (check with `lightspec status`)
4. Delta specs are properly written

## After Archiving

The change will be moved to `lightspec/changes/archive/` and main specs will be updated with the changes.
Empty file.
41 changes: 41 additions & 0 deletions .claude/skills/lightspec-new/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: lightspec-new
description: Create a new change proposal for tracking work
disable-model-invocation: true
---

Create a new change proposal to track development work.

## Usage

Use this skill when starting a new feature, bug fix, or any tracked work.

## What This Does

1. Creates a new change directory under `lightspec/changes/<name>/`
2. Creates change metadata for tracking
3. Optionally adds a README.md with description

## Implementation

Use the CLI command:
```bash
lightspec new change <name> [options]
```

### Options

- `--description <text>`: Description to add to README.md
- `--schema <name>`: Workflow schema to use (default: spec-driven)

### Example

```bash
# Create a new change
lightspec new change add-user-authentication --description "Add OAuth2 authentication"

# Or use default description
lightspec new change refactor-database
```

This creates the change structure and makes it ready for artifact creation.
2 changes: 1 addition & 1 deletion .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Dev Container Setup

This directory contains the VS Code dev container configuration for OpenSpec development.
This directory contains the VS Code dev container configuration for LightSpec development.

## What's Included

Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "OpenSpec Development",
"name": "LightSpec Development",
"image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bookworm",

// Additional tools and features
Expand Down
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# Default code ownership
* @TabishB
* @viteinfinite
* jlnquere
14 changes: 3 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down Expand Up @@ -108,8 +106,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down Expand Up @@ -147,8 +143,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down Expand Up @@ -204,16 +198,16 @@ jobs:
echo "Error: Nix build output 'result' symlink not found"
exit 1
fi
if [ ! -f "result/bin/openspec" ]; then
echo "Error: openspec binary not found in build output"
if [ ! -f "result/bin/lightspec" ]; then
echo "Error: lightspec binary not found in build output"
exit 1
fi
echo "✅ Build output verified"

- name: Test binary execution
run: |
VERSION=$(nix run . -- --version)
echo "OpenSpec version: $VERSION"
echo "LightSpec version: $VERSION"
if [ -z "$VERSION" ]; then
echo "Error: Version command returned empty output"
exit 1
Expand Down Expand Up @@ -251,8 +245,6 @@ jobs:

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Setup Node.js
uses: actions/setup-node@v4
Expand Down
37 changes: 28 additions & 9 deletions .github/workflows/polish-release-notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,24 @@ permissions:
jobs:
polish:
# Only run on the main repo, not forks
if: github.repository == 'Fission-AI/OpenSpec'
if: github.repository == 'augmenter-dev/lightspec'
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Check Claude auth availability
id: auth-check
env:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
if [ -n "${CLAUDE_CODE_OAUTH_TOKEN}" ] || [ -n "${ANTHROPIC_API_KEY}" ]; then
echo "has_auth=true" >> "$GITHUB_OUTPUT"
else
echo "has_auth=false" >> "$GITHUB_OUTPUT"
fi

- name: Get current release body
id: get-release
env:
Expand All @@ -34,18 +46,20 @@ jobs:
echo "Fetched release notes for ${{ env.TAG_NAME }}"

- name: Transform release notes with Claude
if: ${{ steps.auth-check.outputs.has_auth == 'true' }}
uses: anthropics/claude-code-action@v1
id: claude
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
claude_args: "--allowedTools Write,Read"
prompt: |
Transform the changelog in `current-notes.md` into release notes for OpenSpec ${{ env.TAG_NAME }}.
Transform the changelog in `current-notes.md` into release notes for LightSpec ${{ env.TAG_NAME }}.

## Voice

OpenSpec is a developer tool. Write like you're talking to a peer:
LightSpec is a developer tool. Write like you're talking to a peer:
- Direct and practical, not marketing copy
- Focus on what changed and why it matters
- Skip the hype, keep it real
Expand All @@ -62,7 +76,7 @@ jobs:
```

Examples:
- `v0.18.0 - OPSX Experimental Workflow`
- `v0.23.0 - Enhanced Change Management`
- `v0.16.0 - Antigravity, iFlow Support`
- `v0.15.0 - Gemini CLI, RooCode`

Expand Down Expand Up @@ -96,7 +110,7 @@ jobs:

## Rules

1. Write for developers using OpenSpec with AI coding assistants
1. Write for developers using LightSpec with AI coding assistants
2. Remove commit hashes (like `eb152eb:`), PR numbers, and changesets wrappers (`### Minor Changes`)
3. Lead with what users can do, not implementation details
4. One to two sentences per item, max
Expand All @@ -109,25 +123,30 @@ jobs:
Before:
```
### Minor Changes
- 8dfd824: Add OPSX experimental workflow commands and enhanced artifact system
- 8dfd824: Add support for archiving completed changes with metadata preservation
**New Commands:**
- `/opsx:ff` - Fast-forward through artifact creation
- `lightspec archive` - Archive completed changes
```

After (polished-notes.md):
```
### New

- **Fast-forward mode** - Generate all planning artifacts at once with `/opsx:ff`. Useful when you already know what you're building.
- **Change archiving** - Archive completed changes with `lightspec archive`. Preserves change history and metadata.
```

After (release-title.txt):
```
v0.18.0 - OPSX Experimental Workflow
v0.23.0 - Enhanced Change Management
```

Write both files. No other output.

- name: Skip polishing (Claude auth not configured)
if: ${{ steps.auth-check.outputs.has_auth != 'true' }}
run: |
echo "Skipping AI polishing: configure CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY to enable this step."

- name: Update release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
Loading