Compare commits

...

2 Commits

Author SHA1 Message Date
c35e6bff5d docs(agents): note that blueprint package discovery requires git staging
Some checks failed
CI / check (push) Has been cancelled
Blueprint reads packages from the git index, not the working directory.
New packages must be staged with 'git add' before they appear in flake
outputs. Add this to both the Blueprint Framework section and the
'Adding a New Package' workflow.
2026-05-10 16:59:24 +03:00
c9e6af2956 feat(packages): add desloppify v0.9.15
Add desloppify, a multi-language codebase health scanner and technical
debt tracker for AI agents. Includes all [full] optional dependencies
(tree-sitter, bandit, pillow, pyyaml, defusedxml) for complete
functionality out of the box.
2026-05-10 16:53:40 +03:00
4 changed files with 63 additions and 0 deletions

View File

@@ -23,6 +23,8 @@ This project uses `numtide/blueprint` which:
- Handles formatting, checking, and devShell generation
- Exposes `mkPackagesFor` function to build packages against any nixpkgs instance
**Important**: Blueprint's package discovery reads from the git index, not the working directory. New package directories must be staged with `git add` before they appear in flake outputs. Unstaged files are invisible to `nix build`, `nix flake show`, and `nix run`.
### Two Overlay Strategies
1. **`overlays.default`** - Binary-cache-friendly
@@ -159,6 +161,10 @@ When adding a new package:
pkgs.callPackage ./package.nix { }
```
3.5. **Stage the package**: `git add packages/<package-name>/`
Blueprint discovers packages from the git index, not the working directory.
Without this step, the package won't appear in flake outputs.
4. **Test the package**:
```bash
nix build .#<package-name>

View File

@@ -13,6 +13,7 @@ A custom Nix overlay and flake providing additional packages not found in upstre
| Package | Description | Category |
|---------|-------------|----------|
| `container-use` | Containerized environments for coding agents | AI Coding Agents |
| `desloppify` | Multi-language codebase health scanner and technical debt tracker for AI agents | AI Coding Agents |
| `goose-cli` | CLI for Goose - a local, extensible, open source AI agent that automates engineering tasks | AI Coding Agents |
| `graphify` | Turn any folder of code, docs, papers, images, or videos into a queryable knowledge graph | AI Coding Agents |
| `mcp-gateway` | Universal Model Context Protocol gateway that sits between AI client and MCP tools/servers | MCP Servers |
@@ -104,6 +105,7 @@ nix-overlay/
│ └── shared-nixpkgs.nix # Dependency-sharing overlay
├── packages/ # Package definitions
│ ├── default/ # Meta-package listing all packages
│ ├── desloppify/ # Codebase health scanner for AI agents
│ ├── flake-inputs/ # Utility for caching flake inputs
│ ├── goose-cli/ # Goose AI agent CLI
│ ├── graphify/ # Knowledge graph generator for code folders

View File

@@ -0,0 +1 @@
{ pkgs, ... }: pkgs.callPackage ./package.nix { }

View File

@@ -0,0 +1,54 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "desloppify";
version = "0.9.15";
pyproject = true;
src = fetchFromGitHub {
owner = "peteromallet";
repo = "desloppify";
rev = "v${version}";
hash = "sha256-KVCt9loGSzsOaYSLNzpyUCi/TpCDQ4b6BxEydQTRNcA=";
};
build-system = with python3Packages; [
setuptools
];
# Include all [full] optional dependencies for complete functionality.
# Upstream has no base dependencies - all features are behind optional extras.
dependencies = with python3Packages; [
tree-sitter
tree-sitter-language-pack
defusedxml
bandit
pillow
pyyaml
];
doCheck = false;
pythonImportsCheck = [ "desloppify" ];
passthru = {
category = "AI Coding Agents";
updateScript = [
"nix-update"
"--flake"
".#desloppify"
];
};
meta = {
description = "Multi-language codebase health scanner and technical debt tracker for AI agents";
homepage = "https://github.com/peteromallet/desloppify";
changelog = "https://github.com/peteromallet/desloppify/releases/tag/v${version}";
license = lib.licenses.unfreeRedistributable;
mainProgram = "desloppify";
platforms = lib.platforms.all;
};
}