Rename azos-core features/ to suites/; fold claude-memory/claude-skills into base
Bumps the azos-core submodule and updates docs/imports to match: AGENTS.md now documents the suite-grouping convention (no bare top-level modules), and claude-memory/claude-skills no longer need their own entries in home-manager/home.nix since they're folded into the base suite.
This commit is contained in:
@@ -83,7 +83,7 @@ azos/
|
|||||||
├── shells/ # Dev shells
|
├── shells/ # Dev shells
|
||||||
└── azos-core/ # Shared feature library (git submodule)
|
└── azos-core/ # Shared feature library (git submodule)
|
||||||
├── flake.nix
|
├── flake.nix
|
||||||
├── features/ # Shared/reusable features (auto-discovered)
|
├── suites/ # Suites, each grouping related sub-features (auto-discovered)
|
||||||
├── overlays/ # Core overlays
|
├── overlays/ # Core overlays
|
||||||
└── _lib/ # Module schema helpers
|
└── _lib/ # Module schema helpers
|
||||||
```
|
```
|
||||||
@@ -93,7 +93,10 @@ Features are auto-discovered by `import-tree` — no central imports file. Each
|
|||||||
then explicitly imported in `home-manager/home.nix` via `suiteModules.homeManager.<name>`.
|
then explicitly imported in `home-manager/home.nix` via `suiteModules.homeManager.<name>`.
|
||||||
|
|
||||||
**Where to put a new feature:**
|
**Where to put a new feature:**
|
||||||
- Shared / reusable across machines → `azos-core/features/<name>/default.nix`
|
- Shared / reusable across machines → inside an existing or new suite directory,
|
||||||
|
`azos-core/suites/<suite>/<name>/default.nix` (registering
|
||||||
|
`config.flake.modules.homeManager.<suite>`) — never a bare file directly under
|
||||||
|
`azos-core/suites/`; every azos-core feature belongs to a suite.
|
||||||
- Machine-specific → `azos/features/<name>/default.nix`
|
- Machine-specific → `azos/features/<name>/default.nix`
|
||||||
|
|
||||||
## Code Style Guidelines
|
## Code Style Guidelines
|
||||||
@@ -125,7 +128,7 @@ All features follow this flake-parts registration pattern:
|
|||||||
|
|
||||||
### Naming Conventions
|
### Naming Conventions
|
||||||
- Option paths: `azos.<module-name>.<option>`
|
- Option paths: `azos.<module-name>.<option>`
|
||||||
- Module names: kebab-case (`git-config`, `claude-memory`)
|
- Module names: kebab-case (`git-config`, `station`)
|
||||||
- Feature directories: kebab-case, one `default.nix` per feature
|
- Feature directories: kebab-case, one `default.nix` per feature
|
||||||
- Variables: kebab-case
|
- Variables: kebab-case
|
||||||
|
|
||||||
@@ -193,15 +196,18 @@ specialisation = {
|
|||||||
|
|
||||||
## Adding New Modules
|
## Adding New Modules
|
||||||
|
|
||||||
1. Create `features/<name>/default.nix` (machine-specific) or `azos-core/features/<name>/default.nix` (shared)
|
1. Create `features/<name>/default.nix` (machine-specific) or, for shared features,
|
||||||
|
`azos-core/suites/<suite>/<name>/default.nix` inside an existing or new suite
|
||||||
|
(registering `config.flake.modules.homeManager.<suite>`, not a standalone module name)
|
||||||
2. Use the module template above
|
2. Use the module template above
|
||||||
3. Add `suiteModules.homeManager.<name>` to the imports list in `home-manager/home.nix`
|
3. Machine-specific: add `suiteModules.homeManager.<name>` to the imports list in
|
||||||
|
`home-manager/home.nix`. Shared: no change needed if the suite is already imported.
|
||||||
4. Run `nix fmt`
|
4. Run `nix fmt`
|
||||||
|
|
||||||
> **Submodule gotcha**: New files in `azos-core/` must be `git add`-ed inside the submodule
|
> **Submodule gotcha**: New files in `azos-core/` must be `git add`-ed inside the submodule
|
||||||
> before `nix build` will see them — Nix flakes only evaluate git-tracked files.
|
> before `nix build` will see them — Nix flakes only evaluate git-tracked files.
|
||||||
> ```bash
|
> ```bash
|
||||||
> cd azos-core && git add features/<name>/
|
> cd azos-core && git add suites/<suite>/<name>/
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
## Claude Integration
|
## Claude Integration
|
||||||
@@ -210,10 +216,15 @@ Claude Code is integrated with this environment via several azos-core features:
|
|||||||
|
|
||||||
| Feature | Option | What it does |
|
| Feature | Option | What it does |
|
||||||
|---------|--------|--------------|
|
|---------|--------|--------------|
|
||||||
| `azos-core/features/claude-memory` | `azos.claude-memory.enable` | Registers org-roam-mcp as a global MCP server in `~/.claude.json` |
|
| `azos-core/suites/base/claude-memory` | `azos.claude-memory.enable` | Registers org-roam-mcp as a global MCP server in `~/.claude.json` |
|
||||||
| `azos-core/features/claude-skills` | `azos.claude-skills.enable` | Deploys skills to `~/.claude/commands/` and content to `~/.claude/CLAUDE.md` |
|
| `azos-core/suites/base/claude-skills` | `azos.claude-skills.enable` | Deploys skills to `~/.claude/commands/` and content to `~/.claude/CLAUDE.md` |
|
||||||
| `azos/features/claude` | `azos.claude.enable` | Installs claude-code, auto-enables the above two |
|
| `azos/features/claude` | `azos.claude.enable` | Installs claude-code, auto-enables the above two |
|
||||||
|
|
||||||
|
Both claude-memory and claude-skills register `config.flake.modules.homeManager.base`
|
||||||
|
(they live inside the `base` suite, since that's where agent-shell is introduced) — not
|
||||||
|
standalone module names, so no separate `suiteModules.homeManager.*` import is needed for
|
||||||
|
them in `home-manager/home.nix`.
|
||||||
|
|
||||||
### Adding Claude skills or standing instructions
|
### Adding Claude skills or standing instructions
|
||||||
From any module — no need to touch azos-core:
|
From any module — no need to touch azos-core:
|
||||||
```nix
|
```nix
|
||||||
@@ -223,7 +234,7 @@ azos.claude.globalMdSections.my-rule = ''
|
|||||||
Always do X when Y.
|
Always do X when Y.
|
||||||
'';
|
'';
|
||||||
```
|
```
|
||||||
See `azos-core/features/claude-skills/README.md` for full documentation.
|
See `azos-core/suites/base/claude-skills/README.md` for full documentation.
|
||||||
|
|
||||||
## Key Files
|
## Key Files
|
||||||
|
|
||||||
@@ -236,10 +247,10 @@ See `azos-core/features/claude-skills/README.md` for full documentation.
|
|||||||
| `nixos/configuration-vm.nix` | Test VM config |
|
| `nixos/configuration-vm.nix` | Test VM config |
|
||||||
| `overlays/` | Package overlays |
|
| `overlays/` | Package overlays |
|
||||||
| `azos-core/` | Shared feature library (git submodule) |
|
| `azos-core/` | Shared feature library (git submodule) |
|
||||||
| `azos-core/features/` | Shared features (auto-discovered by import-tree) |
|
| `azos-core/suites/` | Suites, each grouping related shared sub-features (auto-discovered by import-tree) |
|
||||||
| `features/` | Machine-specific features (auto-discovered by import-tree) |
|
| `features/` | Machine-specific features (auto-discovered by import-tree) |
|
||||||
| `azos-core/features/editor/emacs/config.org` | Literate Emacs config |
|
| `azos-core/suites/editor/emacs/config.org` | Literate Emacs config |
|
||||||
| `azos-core/features/claude-skills/README.md` | Claude skills extensibility docs |
|
| `azos-core/suites/base/claude-skills/README.md` | Claude skills extensibility docs |
|
||||||
|
|
||||||
## Common Tasks
|
## Common Tasks
|
||||||
|
|
||||||
|
|||||||
+1
-1
Submodule azos-core updated: 5669ae0692...ee2f98deee
@@ -16,8 +16,6 @@
|
|||||||
suiteModules.homeManager.lauretta
|
suiteModules.homeManager.lauretta
|
||||||
suiteModules.homeManager.audio
|
suiteModules.homeManager.audio
|
||||||
suiteModules.homeManager.claude
|
suiteModules.homeManager.claude
|
||||||
suiteModules.homeManager.claude-memory
|
|
||||||
suiteModules.homeManager.claude-skills
|
|
||||||
suiteModules.homeManager.encryption
|
suiteModules.homeManager.encryption
|
||||||
suiteModules.homeManager.git-config
|
suiteModules.homeManager.git-config
|
||||||
suiteModules.homeManager.hfsprogs
|
suiteModules.homeManager.hfsprogs
|
||||||
|
|||||||
Reference in New Issue
Block a user