From 3b255bd329507d4e53657cca6cc1a35b2faff3ed Mon Sep 17 00:00:00 2001 From: Richard Tix Date: Sat, 15 Aug 2026 12:05:55 +0200 Subject: [PATCH 1/2] First edit proposal with notes added for discussion --- README.md | 122 ++++++++++++++++++++++++------------------------------ 1 file changed, 53 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index ce5cdc1..791d906 100644 --- a/README.md +++ b/README.md @@ -2,33 +2,32 @@ A CLI tool that keeps your AI coding assistant configuration in one place and copies the right pieces into each of your projects. -If you've never touched this tool before, read on. This README assumes you know -nothing about it. +(EDITORIAL NOTE: add routing to other parts? +- quickstart +- instructions ++need to discuss reader journey/paths) --- -## Why does this exist? +## What is Agentfiles? -Modern AI coding assistants like Claude Code, Codex, Cursor, opencode each want -their own configuration files scattered across every repository you work on: +Modern AI coding assistants like Claude Code, Codex, Cursor or opencode all require individual configuration files added to each repository you work on: - Claude Code reads files under `.claude/` and `.mcp.json`. - Codex reads `AGENTS.md`, `.codex/config.toml`, and `.codex/skills/`. - Cursor reads `.cursor/commands/` and `.cursor/config.json`. - opencode reads `.opencode/`. -If you work on many repos, you end up copy-pasting the same skills, settings, hooks, and prompts into every one of them. When you improve a skill in one place, the others drift out of sync. Deleting something cleanly is risky because you can't remember what was hand-written vs. what you copied in. +Across multiple repos, skill, setting, hook, and prompt artifacts get duplicated and drift out of sync. Updates and deletions become difficult because copied artifacts are hard to distinguish from hand-written ones. -`agentfiles` solves this by treating your **profile folder** as the single -source of truth, and treating the files inside each project repository as -**generated outputs** that it plans, previews, and writes for you. +`agentfiles` solves this by making your personal **profile folder** the single source of truth, as well as planning, previewing, and writing **generated assets** that you can propagate to each of your project repositories. -You edit your skills, prompts, and settings once, in the profile. Then you -`apply` them into as many project repos as you like. +You edit your skills, prompts, and settings (**base assets**) once, in the profile folder. Then you +`apply` them to as many project repos as you like. --- -## The big idea in one picture +## Workflow overview ``` ┌─────────────────────────────────────────┐ @@ -39,7 +38,7 @@ You edit your skills, prompts, and settings once, in the profile. Then you ▼ ┌─────────────────────────────────────────┐ │ ~/profiles/personal/ (one profile) │ The source of truth. -│ ├── profile.json │ You edit content here. +│ ├── profile.json │ You edit your base assets here. │ ├── assets/ │ │ │ ├── skill/review/SKILL.md │ │ │ ├── settings/… │ @@ -52,7 +51,7 @@ You edit your skills, prompts, and settings once, in the profile. Then you │ render + apply ▼ ┌─────────────────────────────────────────┐ -│ ~/src/app/ (a target repository) │ Generated outputs land here. +│ ~/src/app/ (a target repository) │ Generated assets land here. │ ├── AGENTS.md │ │ ├── .claude/skills/review/SKILL.md │ │ ├── .codex/skills/review/SKILL.md │ @@ -61,14 +60,13 @@ You edit your skills, prompts, and settings once, in the profile. Then you └─────────────────────────────────────────┘ ``` -One profile can feed many target projects. Each project chooses which **assets** (skills, settings, prompts, etc.) it wants and which **agents** (Claude Code, Codex, Cursor, opencode) it wants to render for. +One profile can feed many target projects. Each project can declare which **assets** (skills, settings, prompts, etc.) it needs and for which **agents** (Claude Code, Codex, Cursor, opencode) it wants to render them. --- ## Key terms -Before you run any commands, it helps to know the vocabulary. These words mean -something specific in `agentfiles` and are used throughout the TUI and docs. +Before you run any commands, it helps to know the vocabulary. These words mean something specific in `agentfiles` and are used throughout the TUI and docs. | Term | What it is | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -79,12 +77,12 @@ something specific in `agentfiles` and are used throughout the TUI and docs. | **Enabled agent** | An AI tool the project renders for. One of: `codex`, `claude-code`, `cursor`, `opencode`. | | **Render plan** | The set of files `agentfiles` wants to write into a project, computed from its selected assets. | | **Preview** | A render plan compared against what's already in the project repo. Shows creates, updates, drift, and delete candidates. | -| **Managed surfaces** | The only paths `agentfiles` is allowed to touch inside a repo: `AGENTS.md`, `.claude/`, `.cursor/`, `.codex/`, `.opencode/`, `.mcp.json`. Anything outside this list is left alone. | +| **Managed surfaces** | The only paths `agentfiles` is allowed to access inside a repo: `AGENTS.md`, `.claude/`, `.cursor/`, `.codex/`, `.opencode/`, `.mcp.json`. Anything outside this list is not read or written. (EDITORIAL NOTE: could use a better term, let's discuss some alternatives in line with the artifact terminology) | | **Managed state** | A bookkeeping file at `/.agentfiles/state.json` listing which files were written last time and what their hashes were. Used to detect drift. | -| **Drift** | A managed file was edited locally after the last apply, so its hash no longer matches what `agentfiles` wrote. Shown in previews so you don't lose that edit by accident. | -| **Delete candidate** | A file inside a managed surface that `agentfiles` recognizes but no longer wants. Never deleted automatically — `Project → Apply` asks you to confirm removal when candidates exist. | +| **Drift** | A managed file that was edited locally after the last `apply` command, so its hash no longer matches what `agentfiles` wrote. Shown in previews so you don't lose that edit by accident. | +| **Delete candidate** | A file inside a managed surface that `agentfiles` recognizes but no longer wants. Never deleted automatically — `Project → Apply` asks you to confirm removal when candidates exist. See [Safe deletion](#safe-deletion) for details of this workflow.| -A longer glossary lives in [`docs/glossary.md`](./docs/glossary.md). +A full glossary lives in [`docs/glossary.md`](./docs/glossary.md). --- @@ -95,8 +93,7 @@ A longer glossary lives in [`docs/glossary.md`](./docs/glossary.md). - Optional: [`mise`](https://mise.jdx.dev/) to pin the Go toolchain (see `mise.toml`). -There is no database, no daemon, and no network service. Everything is plain -JSON files on your disk. +There is no database, no daemon, and no network service. Everything is plain JSON files on your disk. --- @@ -110,9 +107,7 @@ cd agentfiles make build ``` -This produces a binary at `./bin/af`. Put it on your `PATH` (or alias it to -`agentfiles` — that's the name the CLI uses internally and throughout this -README). +This produces a binary at `./bin/af`. Put it on your `PATH` (or alias it to `agentfiles` — that's the name the CLI uses internally and throughout this README). ```bash # Example: put a symlink where your shell will find it @@ -136,37 +131,39 @@ Other common `make` targets: `agentfiles` is fully TUI-driven. Run the `af` command and the top-level menu opens. From there you pick a category, then an action, and the matching form walks you through it. -There are no per-command flags to memorize and no subcommand paths: every input is collected through the TUI. - -Press `Esc` at any prompt to back out one level. `Ctrl+C` works the same -way. +Press `Esc` at any prompt to back out one level. `Ctrl+C` does the same. ### 1. Create a profile > [!NOTE] -> You can create a git repository inside the profile folder. This way you can share a profile with other people working on the same project. If you already have a profile that you want to register (for example if you cloned someone else's profile) you can use `register` to add it +> You can create a git repository inside the profile folder. This way you can share a profile with other people working on the same project. You can also register an existing profile (for example if you cloned someone else's profile) by using `register` to add it to your `agentfiles` instance. Pick `Profile → Create`. The form prompts for a display name and a path. After it completes, `~/{your-path}/{your-profile}/` exists with `profile.json` and empty `assets/` and `projects/` subfolders, and the profile is registered in `~/.agentprofiles.json`. ### 2. Add a reusable skill -A **skill** is one of the asset types. It's a markdown file (`SKILL.md`) plus -optional supporting files that can be rendered for every agent. +A **skill** is one of the asset types. It is a markdown file (`SKILL.md`) plus optional supporting files that can be rendered for every agent. + +(EDITORIAL NOTE: maybe we can show this visually with some screenshots?) +(EDITORIAL NOTE: Instead of asking the first-time user to write their own SKILL.md, we could create an example project that the user can register to get to know some skill alternatives, profile layout, etc. Maybe as an optional on-boarding path.) -Pick `Asset → Init`. The form picks the owning profile from a list, presents the supported asset types as a Select, and asks for the id, name, and description. -The new directory (e.g. `~/profiles/personal/assets/skill/review/`) is printed when the form -completes; open `SKILL.md` and write your actual content. + +Pick `Asset → Init`. (EDITORIAL NOTE: As a first-time user I can't identify this workflow based on the TUI and hints. Did you modify this? I can only access assets from Edit profile/Create asset.) The form picks the owning profile from a list, presents the supported asset types as a Select, and asks for the id, name, and description. +The new directory (e.g. `~/profiles/personal/assets/skill/review/`) is printed when the form completes. You can now open `SKILL.md` and write your actual content. ### 3. Register a target project Pick `Project → Add`. Tell `agentfiles` which repository this profile should feed, which AI agents it should render for, and which assets to include. The form picks the profile, asks for a name and absolute path, lets you multi-select the supported agents, and lets you multi-select assets from the ones already defined in the chosen profile. + +(EDITORIAL NOTE: maybe we can show this visually with some screenshots?) + The project manifest lands in the profile's `projects/` folder; nothing is written into the target repository yet. ### 4. Preview what will happen -Always run `Plan` before `Apply`. It's read-only and shows you exactly what files would be created, updated, or flagged. +Always run `Plan` before `Apply`. It is read-only and shows you exactly what files would be created, updated, or flagged. Pick `Project → Plan`. The form picks the profile, then the project, then prints the preview: @@ -178,7 +175,7 @@ Project: /home/you/src/app ### 5. Apply the changes -Pick `Project → Apply`. The flow runs `Plan`, shows the same summary, and then asks you to confirm before writing. If delete candidates exist, the form also asks whether to remove them. +Pick `Project → Apply`. The flow runs `Plan`, shows the same summary, and then asks you to confirm before writing. If the project contains assets removed from active management (delete candidates), the form also asks whether to remove them. After apply succeeds, `~/src/app/.agentfiles/state.json` records what was written. Next time you run `Plan`, `agentfiles` will compare against that state. @@ -192,6 +189,8 @@ Edit the skill in your profile (`~/profiles/personal/assets/skill/review/SKILL.m `af` takes no positional arguments. Running it opens the main menu; everything else is a submenu pick followed by a form. The only flag the binary accepts is `--registry `, which overrides the default `~/.agentprofiles.json` location (useful for tests or isolated environments). +(EDITORIAL NOTE: if you already went full TUI, this could be moved to Settings as a separate workflow) + ### Profile Manage profiles and the global registry. @@ -258,8 +257,7 @@ Each `asset.json` can narrow which agents are allowed to use it: ### Generic projections -For `mcp`, `rule`, `hook`, and any custom-shaped asset, you describe the -source-to-target mapping yourself in the manifest: +For `mcp`, `rule`, `hook`, and any custom-shaped asset, you must describe the source-to-target mapping yourself in the manifest: ```json { @@ -278,8 +276,7 @@ source-to-target mapping yourself in the manifest: } ``` -Targets **must** fall inside a managed surface (see next section). Anything -outside is refused at render time. +Targets **must** be located inside a managed surface (see next section). Anything outside is refused at render time. --- @@ -304,14 +301,13 @@ Each apply writes hashes of every managed file into `/.agentfiles/state.js - **File unchanged** → skipped. - **File changed by `agentfiles`** (i.e. the profile has new content) → reported as `update`. -- **File changed locally** (hash differs from state, state exists) → reported - as `drift`. You're being warned that a hand-edit will be overwritten if you - apply. +- **File changed locally** (hash differs from state, state exists) → reported as `drift`. You will be warned that your edits will be overwritten if you run `apply`. ### Safe deletion -If a file used to be managed but is no longer part of the render plan - say you removed an asset from the project's selection - it shows up as a **delete candidate**. -`Project → Apply` does _not_ remove these automatically. When candidates exist, the flow pops an extra confirm prompt ("Delete recognized unmanaged files?") before the final apply confirmation; answer yes to remove them, or clean them up by hand. +If a file used to be managed but is no longer part of the render plan (for example you removed an asset from the project's selection) it shows up as a **delete candidate**. `Project → Apply` does _not_ remove these automatically. When unmanaged files exist in your project, the flow pops an extra confirm prompt ("Delete recognized unmanaged files?") before the final apply confirmation; answer yes to remove them, or clean them up by hand. + +(EDITORIAL NOTE: we use "delete candidate" and "unmanaged file" interchangibly, let's clean up the terminology all over - I think "delete candidate" as an umbrella term makes no sense out of context, while "unmanaged file" describes the concept up front) --- @@ -336,9 +332,9 @@ If a file used to be managed but is no longer part of the render plan - say you └── app.json # One project manifest per target repo. ``` -### Target repository (after apply) +### Target repository (after running `apply`) -Only managed surfaces are touched: +Only managed surfaces are modified: ``` ~/app-dir/ @@ -365,23 +361,19 @@ Only managed surfaces are touched: ~/.agentprofiles.json ``` -A single JSON file listing every registered profile with its id, name, path, -creation time, and last-opened time. It stores **only pointers** — no asset -content lives here. +A single JSON file listing every registered profile with its id, name, path, creation time, and last-opened time. It stores **only pointers** — no assets live here. --- ## Ownership rule -One target project path belongs to at most one profile. If profile A already -owns `~/src/app`, profile B cannot `project add` the same path. This prevents -two profiles from silently fighting over the same generated files. +One target project path belongs to at most one profile. If profile A already owns `~/src/app`, profile B cannot `project add` the same path. This prevents two profiles from silently conflicting over the same generated files. --- -## Current status +## Current features -This is an initial implementation. Working today: +This is an initial implementation. Current feature set: - Profile creation, registration, and listing - Asset scaffolding for all six types @@ -396,25 +388,17 @@ This is an initial implementation. Working today: ## License -Agentfiles is licensed under the **GNU Affero General Public License v3.0** -(AGPL-3.0). See [`LICENSE`](./LICENSE) for the full text. +Agentfiles is licensed under the **GNU Affero General Public License v3.0** (AGPL-3.0). See [`LICENSE`](./LICENSE) for the full text. -In short: you may use, modify, and distribute this software freely, but if you -run a modified version as a network service you must make your source available -to its users (AGPL §13). +In short: you may use, modify, and distribute this software freely, but if you run a modified version as a network service you must make your source available to its users (AGPL §13). ### Commercial license -A separate commercial license — permitting use without the AGPL's copyleft and -network-source obligations — is available for organizations that cannot comply -with the AGPL. Contact **info@hexworks.org**. +A separate commercial license — permitting use without the AGPL's copyleft and network-source obligations — is available for organizations that cannot comply with the AGPL. Contact **info@hexworks.org**. ### Contributing -By submitting a contribution you agree to the -[Contributor License Agreement](./CLA.md), under which you assign copyright in -your contribution to Hexworks. This lets Hexworks offer the project under both -the AGPL and a commercial license. See [`CLA.md`](./CLA.md) for details. +By submitting a contribution you agree to the [Contributor License Agreement](./CLA.md), under which you assign copyright in your contribution to Hexworks. This lets Hexworks offer the project under both the AGPL and a commercial license. See [`CLA.md`](./CLA.md) for details. --- From 323aa5b433d2344fe105695d2195414901fecf19 Mon Sep 17 00:00:00 2001 From: Richard Tix Date: Mon, 24 Aug 2026 13:26:48 +0200 Subject: [PATCH 2/2] Added ASCIINEMA test link and addressed some review findings --- README.md | 119 ++++++++++++++++++++++++-------------------------- docs/demo.gif | Bin 0 -> 85301 bytes 2 files changed, 58 insertions(+), 61 deletions(-) create mode 100644 docs/demo.gif diff --git a/README.md b/README.md index 791d906..34e0aee 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ # Agentfiles -A CLI tool that keeps your AI coding assistant configuration in one place and copies the right pieces into each of your projects. +Agentfiles is a CLI tool that enables you to centrally manage your AI coding assistant configurations across multiple projects. By setting up a personal profile, yor agent configurations are propagated from a single source, minimzing agent management overhead and drift over time. -(EDITORIAL NOTE: add routing to other parts? -- quickstart -- instructions -+need to discuss reader journey/paths) +- If you are new to Agentfiles, please read on to learn the basics. +- Go to [Prerequisites and installation](#prerequisites-and-installation) for first-time setup. +- Go to [Quickstart](#quickstart-your-first-end-to-end-run) for hands-on usage instructions. --- @@ -18,49 +17,50 @@ Modern AI coding assistants like Claude Code, Codex, Cursor or opencode all requ - Cursor reads `.cursor/commands/` and `.cursor/config.json`. - opencode reads `.opencode/`. -Across multiple repos, skill, setting, hook, and prompt artifacts get duplicated and drift out of sync. Updates and deletions become difficult because copied artifacts are hard to distinguish from hand-written ones. +Across multiple repos, skill, setting, hook, and prompt assets get duplicated and eventually drift out of sync. Updates and deletions become complicated because copy-pasted or derivative assets are hard to distinguish from hand-written ones. -`agentfiles` solves this by making your personal **profile folder** the single source of truth, as well as planning, previewing, and writing **generated assets** that you can propagate to each of your project repositories. +`agentfiles` solves this by making your personal **profile folder** the single source of truth, as well as planning, previewing, and writing **base assets** that you can selectively propagate to each of your project repositories. You edit your skills, prompts, and settings (**base assets**) once, in the profile folder. Then you -`apply` them to as many project repos as you like. +`apply` them to as many project repos as you like, resulting in **propagated assets** placed in those projects. --- ## Workflow overview ``` -┌─────────────────────────────────────────┐ -│ ~/.agentprofiles.json (registry) │ Global index. Lists your profiles. -└─────────────────────────────────────────┘ +┌─────────────────────────────────────────────────┐ +│ ~/.config/.agentfiles/.profiles.json (registry) │ Global index. Lists your profiles. +│ ~/.config/.agentfiles/.projects.json (registry) │ Global index. Lists your projects. +└─────────────────────────────────────────────────┘ │ │ points to ▼ -┌─────────────────────────────────────────┐ -│ ~/profiles/personal/ (one profile) │ The source of truth. -│ ├── profile.json │ You edit your base assets here. -│ ├── assets/ │ -│ │ ├── skill/review/SKILL.md │ -│ │ ├── settings/… │ -│ │ └── … │ -│ └── projects/ │ -│ ├── app.json (project spec) │ -│ └── website.json │ -└─────────────────────────────────────────┘ +┌─────────────────────────────────────────────────┐ +│ ~/profiles/personal/ (one profile) │ The source of truth. +│ ├── profile.json │ You edit your base assets here. +│ ├── assets/ │ +│ │ ├── skill/review/SKILL.md │ +│ │ ├── settings/… │ +│ │ └── … │ +│ └── projects/ │ +│ ├── app.json (project spec) │ +│ └── website.json │ +└─────────────────────────────────────────────────┘ │ │ render + apply ▼ -┌─────────────────────────────────────────┐ -│ ~/src/app/ (a target repository) │ Generated assets land here. -│ ├── AGENTS.md │ -│ ├── .claude/skills/review/SKILL.md │ -│ ├── .codex/skills/review/SKILL.md │ -│ ├── .cursor/commands/review.md │ -│ └── .agentfiles/state.json │ Bookkeeping for drift detection. -└─────────────────────────────────────────┘ +┌─────────────────────────────────────────────────┐ +│ ~/src/app/ (a target repository) │ Propagated assets land here. +│ ├── AGENTS.md │ +│ ├── .claude/skills/review/SKILL.md │ +│ ├── .codex/skills/review/SKILL.md │ +│ ├── .cursor/commands/review.md │ +│ └── .agentfiles/state.json │ Bookkeeping for drift detection. +└─────────────────────────────────────────────────┘ ``` -One profile can feed many target projects. Each project can declare which **assets** (skills, settings, prompts, etc.) it needs and for which **agents** (Claude Code, Codex, Cursor, opencode) it wants to render them. +One profile can feed any number of target projects. Each project can declare which **assets** (skills, settings, prompts, etc.) it needs and for which **agents** (Claude Code, Codex, Cursor, opencode) it wants to render them. --- @@ -70,23 +70,25 @@ Before you run any commands, it helps to know the vocabulary. These words mean s | Term | What it is | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Registry** | A single file at `~/.agentprofiles.json` that lists every profile you have. Used purely for discovery. | +| **Registry** | A single file at `~/.config/.agentfiles/profiles.json` that lists every profile you have. Used purely for discovery. | | **Profile** | A folder containing your reusable content. Holds `profile.json`, an `assets/` tree, and a `projects/` tree. This is the **source of truth**. | | **Asset** | One reusable unit of content — a skill, a settings file, a hook, etc. Lives inside a profile and has its own `asset.json` manifest. | | **Project** | A target repository together with a list of enabled agents and selected assets. Defined by a JSON file inside the profile's `projects/` folder. | | **Enabled agent** | An AI tool the project renders for. One of: `codex`, `claude-code`, `cursor`, `opencode`. | | **Render plan** | The set of files `agentfiles` wants to write into a project, computed from its selected assets. | | **Preview** | A render plan compared against what's already in the project repo. Shows creates, updates, drift, and delete candidates. | -| **Managed surfaces** | The only paths `agentfiles` is allowed to access inside a repo: `AGENTS.md`, `.claude/`, `.cursor/`, `.codex/`, `.opencode/`, `.mcp.json`. Anything outside this list is not read or written. (EDITORIAL NOTE: could use a better term, let's discuss some alternatives in line with the artifact terminology) | +| **Managed paths** | The only paths `agentfiles` is allowed to access inside a repo: `AGENTS.md`, `.claude/`, `.cursor/`, `.codex/`, `.opencode/`, `.mcp.json`. Anything outside this list is not read or written. | | **Managed state** | A bookkeeping file at `/.agentfiles/state.json` listing which files were written last time and what their hashes were. Used to detect drift. | -| **Drift** | A managed file that was edited locally after the last `apply` command, so its hash no longer matches what `agentfiles` wrote. Shown in previews so you don't lose that edit by accident. | +| **Drift** | A managed asset file that was edited locally after the last `apply` command, so its hash no longer matches what `agentfiles` wrote. Shown in previews so you don't lose that edit by accident. | | **Delete candidate** | A file inside a managed surface that `agentfiles` recognizes but no longer wants. Never deleted automatically — `Project → Apply` asks you to confirm removal when candidates exist. See [Safe deletion](#safe-deletion) for details of this workflow.| A full glossary lives in [`docs/glossary.md`](./docs/glossary.md). --- -## Requirements +## Prerequisites and installation + +### Requirements - **Go 1.26+** to build from source. - A POSIX shell (Linux or macOS). The project builds for both. @@ -97,7 +99,7 @@ There is no database, no daemon, and no network service. Everything is plain JSO --- -## Install / build +### Install / build Clone the repo and build with `make`: @@ -127,9 +129,11 @@ Other common `make` targets: --- -## Quickstart: your first end-to-end run +## Run Agentfiles + +`agentfiles` is fully TUI-driven. Run the `af` command and the top-level menu opens. From there you pick a category, then an action, and the matching form walks you through it: -`agentfiles` is fully TUI-driven. Run the `af` command and the top-level menu opens. From there you pick a category, then an action, and the matching form walks you through it. +[![demo](docs/demo.gif)](https://asciinema.org/a/61nrRvxqxMsCogpL) Press `Esc` at any prompt to back out one level. `Ctrl+C` does the same. @@ -138,30 +142,27 @@ Press `Esc` at any prompt to back out one level. `Ctrl+C` does the same. > [!NOTE] > You can create a git repository inside the profile folder. This way you can share a profile with other people working on the same project. You can also register an existing profile (for example if you cloned someone else's profile) by using `register` to add it to your `agentfiles` instance. -Pick `Profile → Create`. The form prompts for a display name and a path. After it completes, `~/{your-path}/{your-profile}/` exists with `profile.json` and empty `assets/` and `projects/` subfolders, and the profile is registered in `~/.agentprofiles.json`. +Pick `Profile → Create`. The form prompts for a display name and a path. After it completes, `~/{your-path}/{your-profile}/` exists with `profile.json` and empty `assets/` and `projects/` subfolders, and the profile is registered in `~/.config/.agentfiles/profiles.json`. ### 2. Add a reusable skill A **skill** is one of the asset types. It is a markdown file (`SKILL.md`) plus optional supporting files that can be rendered for every agent. -(EDITORIAL NOTE: maybe we can show this visually with some screenshots?) -(EDITORIAL NOTE: Instead of asking the first-time user to write their own SKILL.md, we could create an example project that the user can register to get to know some skill alternatives, profile layout, etc. Maybe as an optional on-boarding path.) - +(EDITORIAL NOTE: Instead of asking the first-time user to write their own SKILL.md, we could create an example project that the user can register to get to know some skill alternatives, profile layout, etc. Maybe as an optional on-boarding path. -> checkout example) -Pick `Asset → Init`. (EDITORIAL NOTE: As a first-time user I can't identify this workflow based on the TUI and hints. Did you modify this? I can only access assets from Edit profile/Create asset.) The form picks the owning profile from a list, presents the supported asset types as a Select, and asks for the id, name, and description. -The new directory (e.g. `~/profiles/personal/assets/skill/review/`) is printed when the form completes. You can now open `SKILL.md` and write your actual content. +From the main menu, select `Profiles → Edit → Create Asset`. The Create Asset form asks for the id, name, and description of the new asset, and presents the supported asset types. The new asset directory (e.g. `~/profiles/personal/assets/skill/review/`) is printed when the form completes. You can now open `SKILL.md` in this directory and write your actual content. ### 3. Register a target project -Pick `Project → Add`. Tell `agentfiles` which repository this profile should feed, which AI agents it should render for, and which assets to include. The form picks the profile, asks for a name and absolute path, lets you multi-select the supported agents, and lets you multi-select assets from the -ones already defined in the chosen profile. +From the main menu, select `Profiles → Edit → Create Project`. Tell `agentfiles` which repository your profile should propagate with assets and which AI agents it should render for. -(EDITORIAL NOTE: maybe we can show this visually with some screenshots?) +The project manifest lands in the profile's `projects/` folder; nothing is written into the target repository yet. -The project manifest lands in the profile's `projects/` folder; nothing is written into the target -repository yet. +### 4. Select assets to propagate -### 4. Preview what will happen +Once your project is created, it appears under `Profiles → Projects`. Select `Select Assets`. The form allows you to define which assets you want to propagate to the selected project. It should list the skill added in step 3. Select it. It shows up in the `Selected Assets` list. + +### 5. Preview changes Always run `Plan` before `Apply`. It is read-only and shows you exactly what files would be created, updated, or flagged. @@ -173,7 +174,7 @@ Project: /home/you/src/app - [create] .codex/skills/review/SKILL.md: file missing ``` -### 5. Apply the changes +### 6. Apply the changes Pick `Project → Apply`. The flow runs `Plan`, shows the same summary, and then asks you to confirm before writing. If the project contains assets removed from active management (delete candidates), the form also asks whether to remove them. @@ -181,15 +182,13 @@ After apply succeeds, `~/src/app/.agentfiles/state.json` records what was writte ### 6. Iterate -Edit the skill in your profile (`~/profiles/personal/assets/skill/review/SKILL.md`), run `af` again and pick `Project → Apply`, and the changes propagate. The profile is the source of truth; the project's `.claude/` and `.codex/` are outputs. +Edit the skill in your profile (`~/profiles/personal/assets/skill/review/SKILL.md`), run `af` again and pick `Project → Apply`, and the changes propagate. The profile is the source of truth; the project's `.claude/` and `.codex/` are propagated assets. --- ## Menu reference -`af` takes no positional arguments. Running it opens the main menu; everything else is a submenu pick followed by a form. The only flag the binary accepts is `--registry `, which overrides the default `~/.agentprofiles.json` location (useful for tests or isolated environments). - -(EDITORIAL NOTE: if you already went full TUI, this could be moved to Settings as a separate workflow) +`af` takes no positional arguments. Running it opens the main menu; everything else is a submenu pick followed by a form. The only flag the binary accepts is `--registry `, which overrides the default `~/.config/.agentfiles/profiles.json` location (useful for tests or isolated environments). ### Profile @@ -305,13 +304,11 @@ Each apply writes hashes of every managed file into `/.agentfiles/state.js ### Safe deletion -If a file used to be managed but is no longer part of the render plan (for example you removed an asset from the project's selection) it shows up as a **delete candidate**. `Project → Apply` does _not_ remove these automatically. When unmanaged files exist in your project, the flow pops an extra confirm prompt ("Delete recognized unmanaged files?") before the final apply confirmation; answer yes to remove them, or clean them up by hand. - -(EDITORIAL NOTE: we use "delete candidate" and "unmanaged file" interchangibly, let's clean up the terminology all over - I think "delete candidate" as an umbrella term makes no sense out of context, while "unmanaged file" describes the concept up front) +If a file was previously managed but is no longer part of the render plan (for example you removed an asset from the project's selection) it shows up as a **delete candidate**. `Project → Apply` does _not_ remove these automatically. When unmanaged files exist in your project, the flow pops an extra confirm prompt ("Delete recognized unmanaged files?") before the final apply confirmation; answer yes to remove them, or clean them up by hand. --- -## File layout on disk +## File layout on disk (TODO: review against current version) ### Profile folder @@ -355,10 +352,10 @@ Only managed surfaces are modified: └── state.json # Managed-state bookkeeping. ``` -### Global registry +### Global registry (TODO: review against current version) ``` -~/.agentprofiles.json +~/.config/.agentfiles/profiles.json ``` A single JSON file listing every registered profile with its id, name, path, creation time, and last-opened time. It stores **only pointers** — no assets live here. diff --git a/docs/demo.gif b/docs/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..a955ab63e78e17b742b07bc7b77af6448ce556e9 GIT binary patch literal 85301 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%0D|9<_&A!{)w7Ry*;>lpua!v^^^HM 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

Y%|)xx6s`*6g-CO4W97L>+>}F&sdx_ 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