Skip to content

Commit 87e8068

Browse files
committed
release: v0.3.0 apoc — clone/purge commands, docs, branding, README redesign
- Rename connect/disconnect to clone/purge - Complete documentation suite (specs, features, ADRs, glossary) - Matrix/Agent Smith visual identity - README with banner, badges, architecture, command reference - 67 tests passing, lint clean
1 parent d67df6d commit 87e8068

5 files changed

Lines changed: 111 additions & 30 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# Changelog
22

3-
> *Connect AI agent configurations to any project.*
3+
> *Clone AI agent configurations into any project.*
44
55
All notable changes to agents-smith will be documented in this file.
66

7-
## [2.0.0] - 20260502
7+
## [0.3.0] - assimilated Apoc - 20260502
8+
9+
### Changed
10+
11+
- **Breaking:** `smith connect` renamed to `smith clone` — the command that fetches template files and writes them to a project
12+
- **Breaking:** `smith disconnect` renamed to `smith purge` — the command that removes smith-managed files
13+
- Complete documentation rewrite: specs, features, ADRs, glossary, domain model, technical design, context map
14+
- Matrix/Agent Smith visual identity: green phosphor palette, S scan-line lettermark, dark void backgrounds
15+
- README redesigned with banner, badges, architecture diagram, and command reference
16+
17+
## [0.2.0] - 20260501
818

919
### Added
1020

README.md

Lines changed: 66 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,76 @@
1-
# agents-smith
1+
<div align="center">
2+
<img src="docs/assets/banner.svg" alt="smith — Clone AI agent configurations into any project" width="800">
3+
</div>
24

3-
Clone AI agent configurations (AGENTS.md, .opencode/, .flowr/, .templates/) to any project.
5+
<br>
6+
7+
<p align="center">
8+
<strong>Clone AI agent configurations into any project.</strong><br>
9+
<code>smith clone</code> fetches AGENTS.md, .opencode/, .flowr/, .templates/ from any source.<br>
10+
<code>smith purge</code> removes them cleanly. No leftovers.
11+
</p>
12+
13+
<p align="center">
14+
<a href="https://pypi.org/project/agents-smith/"><img src="https://img.shields.io/pypi/v/agents-smith?color=%2300FF41&label=pypi&style=flat-square" alt="PyPI"></a>
15+
<a href="https://github.com/nullhack/agents-smith/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-%2300FF41?style=flat-square" alt="License"></a>
16+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-%E2%89%A513.0-%2300FF41?style=flat-square" alt="Python"></a>
17+
</p>
18+
19+
---
420

521
## Install
622

723
```bash
824
pip install agents-smith
925
```
1026

11-
## Usage
27+
## Quick start
1228

1329
```bash
14-
# Clone — downloads templates from the default source (temple8)
30+
# Clone the default template (temple8) into your project
1531
smith clone
1632

17-
# Clone from a specific source
18-
smith clone --source github:myorg/my-template
19-
smith clone --source /path/to/local/template
20-
smith clone --source https://example.com/template.zip
21-
22-
# Clone and overwrite existing files
23-
smith clone --overwrite
24-
25-
# Purge — removes files listed in the smith-managed .gitignore section
33+
# Purge all smith-managed files when you're done
2634
smith purge
2735
```
2836

37+
That's it. AGENTS.md, .opencode/, .flowr/, and .templates/ appear in your project, tracked in .gitignore. When you're done, `smith purge` removes every file and directory — no orphan files, no stale .gitignore entries.
38+
2939
## Source resolution
3040

31-
1. `--source` CLI flag (highest priority)
32-
2. `[tool.smith] source = "..."` in pyproject.toml
33-
3. Default: `github:nullhack/temple8`
41+
| Priority | Source | Example |
42+
|----------|--------|---------|
43+
| 1 — CLI flag | `--source` | `smith clone --source github:myorg/templates` |
44+
| 2 — Config | `[tool.smith] source` in pyproject.toml | `source = "github:myorg/templates"` |
45+
| 3 — Default | `github:nullhack/temple8` | Used when no flag or config is set |
3446

35-
## How it works
47+
## Commands
3648

37-
**clone**: Downloads AGENTS.md, .opencode/, .flowr/, .templates/ from the source. Skips any file or directory that already exists unless `--overwrite` is set. Adds a `# smith managed` section to .gitignore listing what was written.
49+
### `smith clone`
3850

39-
**purge**: Reads the smith-managed section in .gitignore and deletes every file/directory listed there. Does not remove the .gitignore section itself.
51+
Fetches template files from a source, filters them by allowed topics, writes them to the project directory, and adds a managed section to .gitignore.
4052

41-
## .gitignore section
53+
```bash
54+
smith clone # default source
55+
smith clone --source github:myorg/templates # GitHub shorthand
56+
smith clone --source /path/to/local/template # local directory
57+
smith clone --source https://example.com/t.zip # URL to archive
58+
smith clone --overwrite # replace existing files
59+
```
60+
61+
**Safety:** Only files matching allowed topics (AGENTS.md, .opencode/, .flowr/, .templates/) are ever written. Existing files and directories are skipped unless `--overwrite` is passed.
62+
63+
### `smith purge`
64+
65+
Reads the smith-managed section in .gitignore and deletes every file and directory listed there. The .gitignore section itself is preserved so you can clone again later.
4266

67+
```bash
68+
smith purge # removes all smith-managed files
4369
```
70+
71+
## .gitignore section
72+
73+
```gitignore
4474
# smith managed
4575
AGENTS.md
4676
.opencode/
@@ -49,4 +79,19 @@ AGENTS.md
4979
# end smith managed
5080
```
5181

52-
Only items listed in this section are deleted on purge. Edit this section to control what smith manages.
82+
Only items in this section are removed on purge. Edit it to control what smith manages.
83+
84+
## Architecture
85+
86+
```
87+
smith/
88+
├── cli.py # CLI — argparse, subcommands (clone, purge)
89+
├── core.py # Domain — resolve_source, fetch, clone, purge, FileSpec
90+
└── gitignore.py # Infrastructure — .gitignore section management
91+
```
92+
93+
Flat module structure. Two commands. No framework overhead. The allowed-topics list is a compile-time safety boundary — only agentic configuration files are ever written to your project, regardless of what the source archive contains.
94+
95+
## License
96+
97+
MIT

docs/branding/branding.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Agents read this file before generating release names, C4 diagrams, README banne
1111
## Identity
1212

1313
- **Project name:** agents-smith
14-
- **Tagline:** Connect AI agent configurations to any project
14+
- **Tagline:** Clone AI agent configurations into any project
1515
- **Mission:** Eliminate the repetitive, error-prone process of manually copying AI agent configuration files into projects by providing a single command to fetch, install, and track them — then cleanly purge when done.
1616
- **Vision:** Every developer can add or remove agentic tooling from any project with one command, confident that nothing is left behind or accidentally overwritten. Like Agent Smith in the Matrix, smith enters a project, copies its patterns, and returns something more capable than what it found.
1717
- **Tone of voice:** direct, precise, minimal
@@ -40,9 +40,35 @@ Dark void background (`#0F1117`) with the S logo mark scaled to height, followed
4040

4141
## Release Naming
4242

43-
- **Convention:** `matrix-character` (adjective-matrix-character)
44-
- **Theme:** The Matrix — each release is named after a character, concept, or quote from the Matrix franchise
45-
- **Excluded words:** easy, simple, just, quick, scaffold, boilerplate
43+
- **Convention:** `adjective-character` — one adjective from the approved list below, paired with a Matrix character name
44+
- **Rule:** No adjective-character pair may be reused across releases
45+
- **Examples:** assimilated Apoc, cloned Oracle, overwritten Bane
46+
47+
### Approved adjectives
48+
49+
These adjectives reference Agent Smith's core abilities: assimilation, replication, and overwriting.
50+
51+
| Adjective | Meaning |
52+
|-----------|---------|
53+
| assimilated | Absorbed into the collective — Agent Smith's signature ability |
54+
| cloned | Directly replicated, like Smith copies himself |
55+
| replicated | Exact copy produced, like Smith spawning duplicates |
56+
| infected | Overwritten from within, like Smith corrupts programs |
57+
| overwritten | Identity replaced, like Smith overwrites Bane |
58+
| copied | Duplicated pattern transferred to a new host |
59+
| inserted | Injected into a system, like Smith inserts himself |
60+
| spawned | Multiple instances emerged from one source |
61+
| duplicated | Mirror image created from the original |
62+
| imprinted | Pattern transferred and stamped onto a host |
63+
| propagated | Spread through the system to new targets |
64+
| manifested | Brought into existence from the pattern |
65+
| incorporated | Absorbed into the larger collective |
66+
| exfiltrated | Extracted from one system and redeployed elsewhere |
67+
| grafted | Spliced onto an existing structure |
68+
69+
### Matrix character pool
70+
71+
Apoc, Bane, Cypher, Dozer, Link, Mouse, Niobe, Oracle, Seraph, Switch, Tank, Trinity, Morpheus, Neo
4672

4773
## Wording
4874

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "agents-smith"
7-
version = "2.0.0"
8-
description = "Connect AI agent configurations to any project"
7+
version = "0.3.0"
8+
description = "Clone AI agent configurations into any project"
99
readme = "README.md"
1010
requires-python = ">=3.13"
1111
license = { file = "LICENSE" }

smith/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.0.0"
1+
__version__ = "0.3.0"

0 commit comments

Comments
 (0)