Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Changelog

All notable changes to creed are documented here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.0] — 2026-08-19

The first post-reset feature release. Everything shipped since v0.1.0 lands
here: three new targets, a generated interaction surface set (CLI + MCP +
HTTP), new workflow commands, and a hardened git remote source.

### Added

- **Generated interaction surfaces.** `internal/service.Service` is now the
single source of truth for operations; `go generate ./...` emits CLI
commands, MCP tools, and HTTP routes from operation descriptors parsed off
the service interface. `scripts/check-generated.sh` gates CI on generated
code being current and idempotent.
- **MCP stdio server.** `creed mcp serve [--root PATH]` runs the generated
tool surface over stdio for MCP clients such as Claude Desktop and Cursor.
- **New targets.** `gemini` (`GEMINI.md` + `.gemini/` skills), `copilot`
(`.github/copilot-instructions.md`), and `opencode`
(`.opencode/agents/` + AGENTS.md) join the target registry.
- **`creed watch`** — debounced auto-sync when `.creed/` sources change,
with `--target` and `--debounce` flags and `--quiet` mode.
- **`creed diff`** — line-level preview of changes between rendered target
output and what is on disk.
- **`creed validate`** — manifest + referenced source validation without
writing outputs; structured diagnostics surfaced identically across CLI,
MCP, and HTTP.
- **`creed doctor`** — non-mutating diagnostic report covering project root,
manifest presence, validation summary, configured targets, and git
availability. Never exposes sensitive values.
- **Config management operations.** `add-config`, `remove-config`,
`list-configs`, `add-skill`, `remove-skill`, `list-skills`,
`enable-target`, `disable-target` — manifest editing without hand-editing
YAML.

### Changed

- **Git remote source hardening.** Credentials now flow through go-git auth
methods instead of embedded clone URLs; remote URLs are sanitized in error
messages. Private HTTPS (service token), public HTTPS, and SSH
(`SSH_AUTH_SOCK` or `CREED_GIT_SSH_KEY` + `CREED_GIT_SSH_PASSPHRASE`)
are supported. Cached clones are reused only when remote HEAD matches the
cached SHA.
- CLI `--version` and the MCP server implementation version now report
`0.3.0`.

## [0.1.0] — 2026-07-14

First release. Local + git-remote sources, target output descriptors,
sync/dry-run/force, and the ports-and-adapters core.

## [0.2.0] — 2026-07-07 (pre-reset, superseded)

Tagged before the repository reset, on an ancestor of the v0.1.0 commit.
The module proxy and checksum database pin `v0.2.0` to that pre-reset tree,
so the version number is permanently associated with it. **The 0.3.0 release
above supersedes everything in it.** Do not install v0.2.0; its release
notes are preserved on GitHub only for historical reference.

[0.3.0]: https://github.com/techgodhq/creed/releases/tag/v0.3.0
[0.1.0]: https://github.com/techgodhq/creed/releases/tag/v0.1.0
[0.2.0]: https://github.com/techgodhq/creed/releases/tag/v0.2.0
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ Every AI coding tool has its own conventions:
| Tool | Context files |
|------|---------------|
| Claude Code | `CLAUDE.md`, `.claude/skills/` |
| GitHub Copilot | `.github/copilot-instructions.md` |
| Cursor | `.cursor/rules/` |
| Codex | `AGENTS.md` |
| Gemini CLI | `GEMINI.md`, `.gemini/` |
| OpenCode | `AGENTS.md`, `.opencode/agents/` |
| Generic agents | `AGENTS.md` |
| Windsurf | `.windsurfrules` |
| Aider | `.aider.conf.yml`, `CONVENTIONS.md` |
Expand All @@ -28,6 +30,12 @@ directory the canonical source and emits target-specific files from it.
go install github.com/techgodhq/creed@latest
```

For a pinned release:

```bash
go install github.com/techgodhq/creed@v0.3.0
```

From a checkout:

```bash
Expand Down Expand Up @@ -66,6 +74,26 @@ creed watch --target claude --debounce 250ms

# Quiet mode: report only errors
creed watch --quiet

# Check the manifest and referenced source files without writing outputs
creed validate

# Diagnose the project setup: root, manifest, targets, git availability
creed doctor

# Preview line-level changes between rendered output and disk
creed diff
creed diff --target claude

# Manage manifest registrations without hand-editing YAML
creed add-skill review skills/review.md
creed remove-skill review
creed list-skills
creed add-config project config/project.md
creed remove-config project
creed list-configs
creed enable-target gemini
creed disable-target aider
```

`creed init` is non-destructive: rerunning it creates missing starter files but
Expand All @@ -81,6 +109,8 @@ By default, `creed init` creates:
The generated manifest enables `claude`, `codex`, and `cursor` with
`output_dir: .`. Less universal targets (`agents`, `aider`, `gemini`, and
`windsurf`) are listed but disabled until you opt in.
Newer targets (`copilot`, `opencode`) are scaffolded disabled as well and can
be enabled with `creed enable-target`.

## Manifest format

Expand All @@ -105,12 +135,18 @@ targets:
- name: codex
enabled: true
output_dir: .
- name: copilot
enabled: false
output_dir: .
- name: cursor
enabled: true
output_dir: .
- name: gemini
enabled: false
output_dir: .
- name: opencode
enabled: false
output_dir: .
- name: windsurf
enabled: false
output_dir: .
Expand Down
2 changes: 1 addition & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"github.com/techgodhq/creed/internal/service"
)

const version = "0.1.0"
const version = "0.3.0"

var rootCmd = &cobra.Command{
Use: "creed",
Expand Down
2 changes: 1 addition & 1 deletion internal/mcp/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func NewServer(service service.Service) *Server {
service: service,
mcpServer: serverlib.NewMCPServer(
"creed",
"0.1.0",
"0.3.0",
serverlib.WithToolCapabilities(true),
serverlib.WithStrictInputSchemaDefault(),
serverlib.WithInputSchemaValidation(),
Expand Down
Loading