kammer/flake.nix
Christopher Mühl a1b0cdbd91 feat: integrate sd-card for interactive spec generation (#2)
## Summary

Integrated **sd-card** workflow for interactive specification generation:

-  Added sd-card flake input
-  Created `nix run .#dev` - starts Vite with annotation proxy
-  Updated dev shell with sd-card tools (tea, playwright, nodejs)
-  Replaced old forgejo-workflow with sd-card

## Usage

### Widget-based annotation
```bash
FORGEJO_TOKEN="your-token" nix run .#dev
```

Opens SvelteKit with ✦ widget injected on every page.

### Interactive annotation (recommended)
Ask Claude to interact with the app via Claudezilla:
```
User: "Open solidhaus"
Claude: [opens in Firefox]
User: "Click the scan barcode button"
Claude: [clicks, shows screenshot]
User: "This should open the camera"
Claude: [generates Gherkin scenario]
```

## Test Plan

- [x] Flake builds successfully
- [x] `nix run .#dev` starts dev server with proxy
- [x] Widget injects on pages
- [x] Claudezilla can open and interact with app
- [x] Dev shell includes all sd-card tools

🤖 Generated with Claude Code

Reviewed-on: toph/solidhaus#2
Co-authored-by: Christopher Mühl <toki@toph.so>
Co-committed-by: Christopher Mühl <toki@toph.so>
2026-02-26 23:07:38 +00:00

34 lines
953 B
Nix

{
description = "solidhaus dev shell";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
sd-card.url = "git+ssh://git@git.toph.so/toph/sd-card";
};
outputs = { self, nixpkgs, flake-utils, sd-card }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
packages = {
# nix run .#dev — start SvelteKit dev server with annotation proxy
dev = sd-card.lib.${system}.mkDevApp {
inherit pkgs;
devCmd = "npm run dev";
devPort = 5173; # Vite default port
};
};
devShells.default = pkgs.mkShell {
packages = sd-card.packages.${system}.tools # tea, jq, playwright, nodejs
++ (with pkgs; [
nodejs
nodePackages.npm
]);
};
}
);
}