Skip to content

Commit 161ac15

Browse files
Update project assets and consolidate agent instructions (#30)
* Update project assets and consolidate agent instructions - Refactor CLAUDE.md to point to AGENTS.md as single source of truth - Update AGENTS.md: Go 1.23+ → 1.25+, add missing repo layout entries, consolidate build/test/lint section with all Makefile targets, replace br (beads-rust) issue tracking with GitHub CLI (gh), update release status to shipped - Update README.md: Go 1.23+ → 1.25+ - Fix docs copyright year: 2025 → 2026 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove beads-rust assets and references - Delete .beads/ directory (config, issues, metadata, db) - Remove .bv/ entry from .gitignore - Update docs/contributing/index.md: replace br commands with gh CLI, fix Go version 1.23+ → 1.25+ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove beads.db binary that was accidentally tracked Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4ca2dc9 commit 161ac15

10 files changed

Lines changed: 45 additions & 269 deletions

File tree

.beads/.gitignore

Lines changed: 0 additions & 11 deletions
This file was deleted.

.beads/config.yaml

Lines changed: 0 additions & 4 deletions
This file was deleted.

.beads/issues.jsonl

Lines changed: 0 additions & 41 deletions
This file was deleted.

.beads/metadata.json

Lines changed: 0 additions & 4 deletions
This file was deleted.

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ Thumbs.db
2222
# Manual test reports (per-run artifacts)
2323
tests/manual/reports/
2424

25-
# bv (beads viewer) local config and caches
26-
.bv/
27-
2825
# Docs (VitePress)
2926
docs/.vitepress/cache
3027
docs/.vitepress/dist

AGENTS.md

Lines changed: 36 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Skern is a minimal, agent-first CLI tool for managing Agent Skills across agentic development platforms (Claude Code, Codex CLI, OpenCode). It follows the Agent Skills open standard (agentskills.io) and uses `SKILL.md` files with YAML frontmatter as the canonical format.
66

7-
The project is written in **Go 1.23+** and is preparing for its first release (**v0.0.1**).
7+
The project is written in **Go 1.25+** and has shipped its first release (**v0.0.1**).
88

99
## Repository Layout
1010

@@ -17,80 +17,58 @@ internal/
1717
registry/ # Filesystem CRUD over ~/.skern/skills/ and .skern/skills/
1818
platform/ # Platform adapters (Claude Code, Codex CLI, OpenCode)
1919
output/ # JSON/text structured output formatting
20+
scripts/
21+
install.sh # Installer script
22+
install_test.sh # Installer tests
23+
smoke_test.sh # Smoke tests for built binary
24+
tests/manual/ # Manual (agent-driven) test scenarios
25+
docs/ # Documentation site (VitePress)
2026
go.mod, go.sum
2127
Makefile
2228
.goreleaser.yaml
2329
.golangci.yml
24-
.github/workflows/ci.yml
25-
.github/workflows/release.yml
26-
scripts/install.sh
30+
.github/
31+
workflows/ci.yml
32+
workflows/release.yml
33+
workflows/docs-deploy.yml
34+
workflows/docs-pr-check.yml
35+
CODEOWNERS
2736
```
2837

29-
## Build & Run
38+
## Build, Test & Lint
3039

3140
```sh
32-
# Build
33-
make build
34-
# or directly:
35-
go build -o skern ./cmd/skern
36-
37-
# Run
38-
./skern version
39-
```
40-
41-
## Testing
42-
43-
```sh
44-
# Run all tests
45-
go test ./...
46-
47-
# Run tests for a specific package
48-
go test ./internal/skill/...
49-
50-
# Run tests with verbose output
51-
go test -v ./...
52-
53-
# Run tests with coverage
54-
go test -coverprofile=coverage.out ./...
41+
make build # Build binary with version/commit/date injected
42+
make test # go test ./...
43+
make test-v # Verbose test output
44+
make test-cover # Generate coverage report (coverage.out + coverage.html)
45+
make test-install # Run installer script tests
46+
make test-smoke # Build binary then run smoke tests
47+
make test-manual-setup # Set up manual test scenarios
48+
make test-manual-report # Report manual test results
49+
make test-manual-teardown # Clean up manual test environment
50+
make lint # golangci-lint run
51+
make fmt # gofmt -w .
52+
make clean # Remove binary and coverage files
5553
```
5654

5755
Tests use stdlib `testing` + `testify`. Follow table-driven test patterns. Integration tests should use temporary directories to simulate filesystem layouts.
5856

59-
## Linting & Formatting
60-
61-
```sh
62-
# Format code
63-
gofmt -w .
64-
65-
# Run linter
66-
golangci-lint run
67-
68-
# Lint a specific package
69-
golangci-lint run ./internal/skill/...
70-
```
71-
72-
Configuration lives in `.golangci.yml`.
57+
Linter configuration lives in `.golangci.yml`.
7358

7459
## Issue Tracking Workflow
7560

76-
Development is tracked using **beads-rust (`br`)**, an agent-first CLI issue tracker.
61+
Development is tracked using **GitHub Issues** via the `gh` CLI.
7762

7863
```sh
79-
br list # List all open issues
80-
br ready # Show issues ready to work
81-
br create "Title" --type task # Create a new issue
82-
br update <id> --status in_progress
83-
br close <id> --reason "Done"
84-
br sync --flush-only # Export JSONL (then git add .beads/ && git commit)
64+
gh issue list # List open issues
65+
gh issue create --title "Title" --body "" # Create a new issue
66+
gh issue view <number> # View issue details
67+
gh issue close <number> # Close an issue
68+
gh issue edit <number> --add-label "bug" # Add labels
8569
```
8670

87-
Each milestone (M0-M6) maps to a `br` epic. Reference issues in commit messages as `br#<id>`.
88-
89-
### Mandatory Workflow
90-
91-
1. **Before starting work**: Create a `br` epic for the milestone and individual issues for each task
92-
2. **During development**: Update issue status (`in_progress`, `closed`) as work progresses
93-
3. **In commit messages**: Reference `br#<id>` to link commits to issues
71+
Reference issues in commit messages as `#<number>` (e.g. `Fix validation edge case (#42)`).
9472

9573
## Branching Strategy
9674

@@ -144,7 +122,7 @@ Each milestone gets its own feature branch. All commits for that milestone go on
144122
### Commit Messages
145123

146124
- Keep the subject line concise and imperative ("Add manifest parser", not "Added manifest parser")
147-
- Reference `br` issues when applicable: `br#<id>`
125+
- Reference GitHub issues when applicable: `#<number>`
148126

149127
## Architecture Notes
150128

@@ -249,7 +227,7 @@ Names must match `^[a-z0-9]+(-[a-z0-9]+)*$` and be 1-64 characters.
249227

250228
## Current Status
251229

252-
All milestones (M0–M5) are complete. The project is preparing for its first public release (v0.0.1).
230+
All milestones (M0–M5) are complete. The first public release (v0.0.1) has shipped.
253231

254232
### Future Roadmap
255233

@@ -264,69 +242,3 @@ These items are tracked as GitHub issues:
264242
- Skill dependency resolution
265243
- WASI/Docker execution backends
266244

267-
<!-- br-agent-instructions-v1 -->
268-
269-
---
270-
271-
## Beads Workflow Integration
272-
273-
This project uses [beads_rust](https://github.com/Dicklesworthstone/beads_rust) for issue tracking. Issues are stored in `.beads/` and tracked in git.
274-
275-
**Note:** `br` is non-invasive and never executes git commands. After `br sync --flush-only`, you must manually run `git add .beads/ && git commit`.
276-
277-
### Essential Commands
278-
279-
```bash
280-
# View issues (launches TUI - avoid in automated sessions)
281-
bv
282-
283-
# CLI commands for agents (use these instead)
284-
br ready # Show issues ready to work (no blockers)
285-
br list --status=open # All open issues
286-
br show <id> # Full issue details with dependencies
287-
br create --title="..." --type=task --priority=2
288-
br update <id> --status=in_progress
289-
br close <id> --reason="Completed"
290-
br close <id1> <id2> # Close multiple issues at once
291-
br sync --flush-only # Export JSONL (does NOT commit)
292-
git add .beads/
293-
git commit -m "sync beads"
294-
```
295-
296-
### Workflow Pattern
297-
298-
1. **Start**: Run `br ready` to find actionable work
299-
2. **Claim**: Use `br update <id> --status=in_progress`
300-
3. **Work**: Implement the task
301-
4. **Complete**: Use `br close <id>`
302-
5. **Sync**: Run `br sync --flush-only`, then `git add .beads/ && git commit`
303-
304-
### Key Concepts
305-
306-
- **Dependencies**: Issues can block other issues. `br ready` shows only unblocked work.
307-
- **Priority**: P0=critical, P1=high, P2=medium, P3=low, P4=backlog (use numbers, not words)
308-
- **Types**: task, bug, feature, epic, question, docs
309-
- **Blocking**: `br dep add <issue> <depends-on>` to add dependencies
310-
311-
### Session Protocol
312-
313-
**Before ending any session, run this checklist:**
314-
315-
```bash
316-
git status # Check what changed
317-
git add <files> # Stage code changes
318-
br sync --flush-only # Export beads JSONL
319-
git add .beads/
320-
git commit -m "..." # Commit code + beads changes
321-
git push # Push to remote
322-
```
323-
324-
### Best Practices
325-
326-
- Check `br ready` at session start to find available work
327-
- Update status as you work (in_progress → closed)
328-
- Create new issues with `br create` when you discover tasks
329-
- Use descriptive titles and set appropriate priority/type
330-
- Always `br sync --flush-only` + git add/commit before ending session
331-
332-
<!-- end-br-agent-instructions -->

CLAUDE.md

Lines changed: 2 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,3 @@
1-
# CLAUDE.md — Skern
1+
# CLAUDE.md
22

3-
Skern is a minimal, agent-first CLI for managing Agent Skills across Claude Code, Codex CLI, and OpenCode. It follows the Agent Skills open standard (`SKILL.md` with YAML frontmatter).
4-
5-
## Build & Test
6-
7-
```sh
8-
make build # Build binary with version/commit/date injected
9-
make test # go test ./...
10-
make test-v # Verbose test output
11-
make test-cover # Generate coverage report
12-
make lint # golangci-lint run
13-
make fmt # gofmt -w .
14-
```
15-
16-
Requires Go 1.23+. Dependencies: `cobra`, `yaml.v3`, `testify`.
17-
18-
## Project Structure
19-
20-
```
21-
cmd/skern/main.go # Entry point
22-
internal/
23-
cli/ # Cobra commands (root, version, init, completion, skill_*, platform_*)
24-
skill/ # Domain: Skill struct, manifest parse/write, validation, scaffolding
25-
overlap/ # Fuzzy name matching (Levenshtein) + description similarity scoring
26-
registry/ # Filesystem CRUD over ~/.skern/skills/ and .skern/skills/
27-
platform/ # Adapters: Claude Code, Codex CLI, OpenCode
28-
output/ # JSON/text output formatting (--json, --quiet)
29-
```
30-
31-
## Key Commands
32-
33-
```
34-
skern init # Initialize .skern/ in project
35-
skern skill create <name> [flags] # Scaffold SKILL.md
36-
skern skill list [--scope user|project|all] # List skills (with dedup hints)
37-
skern skill show <name> # Show skill details
38-
skern skill search <query> # Search by name
39-
skern skill validate <name> # Validate against spec
40-
skern skill remove <name> # Remove from registry
41-
skern skill install <name> --platform <p> # Install to platform
42-
skern skill uninstall <name> --platform <p> # Uninstall from platform
43-
skern platform list # Show detected platforms
44-
skern platform status # Skill x platform matrix
45-
skern completion [bash|zsh|fish] # Shell completions
46-
```
47-
48-
## Conventions
49-
50-
- All commands support `--json` for machine-readable output
51-
- Exit codes: 0=success, 1=error, 2=validation failure
52-
- Skill names: `^[a-z0-9]+(-[a-z0-9]+)*$`, 1-64 chars
53-
- Tests: table-driven with `testify`, temp dirs via `t.TempDir()`
54-
- `cli/` package uses injectable `newRegistryFunc` / `newDetectorFunc` for test isolation
55-
- Errors wrapped with `fmt.Errorf("context: %w", err)`
56-
- Overlap thresholds: <0.6 proceed, >=0.6 warn, >=0.9 block (override with `--force`)
57-
58-
## Platform Paths
59-
60-
| Platform | User-level | Project-level |
61-
|-------------|-------------------------------------|---------------------------|
62-
| Claude Code | `~/.claude/skills/<name>/` | `.claude/skills/<name>/` |
63-
| Codex CLI | `~/.agents/skills/<name>/` | `.agents/skills/<name>/` |
64-
| OpenCode | `~/.config/opencode/skills/<name>/` | `.opencode/skills/<name>/`|
65-
66-
## Issue Tracking
67-
68-
Uses `br` (beads-rust). Milestones map to epics. Reference issues in commits as `br#<id>`.
69-
70-
```sh
71-
br list # Open issues
72-
br create "Title" # New issue
73-
br update <id> --status in_progress
74-
br close <id>
75-
br sync --flush-only # Export JSONL (then git add .beads/)
76-
```
3+
All agent instructions live in [AGENTS.md](./AGENTS.md). Refer to that file for project overview, build commands, conventions, architecture, and workflow details.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ skern skill install code-review --platform all
4242
curl -fsSL https://raw.githubusercontent.com/devrimcavusoglu/skern/main/scripts/install.sh | bash
4343
```
4444

45-
Or with Go 1.23+:
45+
Or with Go 1.25+:
4646

4747
```sh
4848
go install github.com/devrimcavusoglu/skern/cmd/skern@latest

docs/.vitepress/config.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export default defineConfig({
104104

105105
footer: {
106106
message: 'Released under the Apache 2.0 License.',
107-
copyright: 'Copyright © 2025-present Devrim Cavusoglu',
107+
copyright: 'Copyright © 2026-present Devrim Cavusoglu',
108108
},
109109
},
110110
})

docs/contributing/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ cd skern
1111

1212
## Requirements
1313

14-
- Go 1.23+
14+
- Go 1.25+
1515
- `golangci-lint` (for linting)
1616
- `make`
1717

@@ -31,12 +31,12 @@ cd skern
3131

3232
## Issue Tracking
3333

34-
The project uses `br` (beads-rust) for issue tracking. Reference issues in commits as `br#<id>`.
34+
The project uses GitHub Issues for tracking. Reference issues in commits as `#<number>`.
3535

3636
```sh
37-
br list # Open issues
38-
br create "Title" # New issue
39-
br close <id> # Close an issue
37+
gh issue list # List open issues
38+
gh issue create --title "Title" --body "" # New issue
39+
gh issue close <number> # Close an issue
4040
```
4141

4242
## License

0 commit comments

Comments
 (0)