Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .conclaude.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,6 @@ stop:
# Message to send when infinite mode is enabled
infiniteMessage: "continue working on the task"

# Alternative to infinite mode - run for a specific number of rounds
# When set, Claude will continue for the specified number of rounds
rounds: null
# Example: rounds: 3

# Pre-tool-use hook configuration - runs before tools are executed
# All file protection rules are consolidated in this section
preToolUse:
Expand Down
79 changes: 79 additions & 0 deletions .config/mouseless/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
[
{
"BTTActionCategory": 0,
"BTTLastUpdatedAt": 1742697650.905817,
"BTTTriggerType": 102,
"BTTTriggerTypeDescriptionReadOnly": "3 Finger Swipe Up",
"BTTTriggerClass": "BTTTriggerTypeTouchpadAll",
"BTTUUID": "F021A0B9-5C64-4DAD-B68A-5F142A23D267",
"BTTPredefinedActionType": 186,
"BTTPredefinedActionName": "⌘ CMD Key Down",
"BTTGenericActionConfig2": "0",
"BTTGenericActionConfig": "1000",
"BTTEnabled": 1,
"BTTEnabled2": 1,
"BTTOrder": 5,
"BTTAdditionalActions":
[
{
"BTTActionCategory": 0,
"BTTLastUpdatedAt": 1742630159.6423111,
"BTTTriggerParentUUID": "F021A0B9-5C64-4DAD-B68A-5F142A23D267",
"BTTIsPureAction": true,
"BTTTriggerClass": "BTTTriggerTypeTouchpadAll",
"BTTUUID": "CCD51876-61F6-4A6C-A689-815224FE4FC3",
"BTTLayoutIndependentActionChar": "t",
"BTTAdditionalActionData": { "sendCurrentModifiers": true },
"BTTGenericActionConfig2": "onlyDown",
"BTTShortcutToSend": "17",
"BTTShortcutUpDown": "onlyDown",
"BTTEnabled": 1,
"BTTEnabled2": 1,
"BTTOrder": 0,
},
{
"BTTActionCategory": 0,
"BTTLastUpdatedAt": 1742630105.987484,
"BTTTriggerParentUUID": "F021A0B9-5C64-4DAD-B68A-5F142A23D267",
"BTTIsPureAction": true,
"BTTTriggerClass": "BTTTriggerTypeTouchpadAll",
"BTTUUID": "DE46BF94-3076-4FC7-B79A-987C0BACBBFE",
"BTTPredefinedActionType": 129,
"BTTPredefinedActionName": "Pause Execution or Delay Next Action (blocking)",
"BTTDelayNextActionBy": "0.3",
"BTTEnabled": 1,
"BTTEnabled2": 1,
"BTTOrder": 1,
},
{
"BTTActionCategory": 0,
"BTTLastUpdatedAt": 1742630163.6112289,
"BTTTriggerParentUUID": "F021A0B9-5C64-4DAD-B68A-5F142A23D267",
"BTTIsPureAction": true,
"BTTTriggerClass": "BTTTriggerTypeTouchpadAll",
"BTTUUID": "97383B56-1EDD-43A8-84D3-F3299CC48612",
"BTTLayoutIndependentActionChar": "t",
"BTTAdditionalActionData": { "sendCurrentModifiers": true },
"BTTGenericActionConfig2": "onlyUp",
"BTTShortcutToSend": "17",
"BTTShortcutUpDown": "onlyUp",
"BTTEnabled": 1,
"BTTEnabled2": 1,
"BTTOrder": 2,
},
{
"BTTActionCategory": 0,
"BTTLastUpdatedAt": 1742630105.9873719,
"BTTTriggerParentUUID": "F021A0B9-5C64-4DAD-B68A-5F142A23D267",
"BTTIsPureAction": true,
"BTTTriggerClass": "BTTTriggerTypeTouchpadAll",
"BTTUUID": "6309C11C-0063-4E9B-A962-9763F9C2624F",
"BTTPredefinedActionType": 187,
"BTTPredefinedActionName": "⌘ CMD Key Up",
"BTTEnabled": 1,
"BTTEnabled2": 1,
"BTTOrder": 3,
},
],
},
]
1 change: 1 addition & 0 deletions .stowrc
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,4 @@
--ignore AGENTS.md
--ignore .claude
--ignore .crush
--ignore result
1 change: 0 additions & 1 deletion .zshrc
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ alias git-reset='git checkout main && git pull'
# nvimfi is find all files ignoring .git
alias nvimfi='nvim "$(find . -type f -path "./.git" -prune -o -type f -not -path "*/\.*" -print | fzf --preview "bat --color=always {}")"'

alias latest='git add . && git commit -m "latest" && git push'
alias nxi='nix'
alias wtr='git worktree remove'
alias wtl='git worktree list'
Expand Down
6 changes: 6 additions & 0 deletions modules/features/engineer.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ in
cldk.enable = true;
cldo.enable = true;
clds.enable = true;
latest.enable = true;
ghostty.enable = true;
dx.enable = true;
cf.enable = true;
Expand Down Expand Up @@ -171,6 +172,10 @@ in
programs = {
tmux.enable = true;
nix-ld.dev.enable = true;
nix-ld.libraries = with pkgs; [
stdenv.cc.cc.lib
zlib
];
direnv.enable = true;
direnv.nix-direnv.enable = true;
ssh = {
Expand Down Expand Up @@ -213,6 +218,7 @@ in
zlaude.enable = true;
klaude.enable = true;
nvimf.enable = true;
latest.enable = true;
};
};
environment = {
Expand Down
25 changes: 25 additions & 0 deletions modules/programs/latest/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
delib,
pkgs,
...
}: let
inherit (delib) singleEnableOption;

program = pkgs.writeShellApplication {
name = "latest";
text = builtins.readFile ./latest.sh;
};
in
delib.module {
name = "programs.latest";

options = singleEnableOption false;

nixos.ifEnabled = {
environment.systemPackages = [program];
};

darwin.ifEnabled = {
environment.systemPackages = [program];
};
}
3 changes: 3 additions & 0 deletions modules/programs/latest/latest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

cldk "commit and push all changes with good commit messages"
16 changes: 16 additions & 0 deletions spectr/changes/add-latest-program/proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Change: Add `latest` program to replace shell alias

## Why
The current `latest` alias in `.zshrc` (`git add . && git commit -m "latest" && git push`) creates uninformative commit messages. Replacing it with a program that invokes `cldk` to generate AI-assisted commit messages will produce more meaningful git history.

## What Changes
- Create new program module `modules/programs/latest/` that calls `cldk "commit and push all changes with good commit messages"`
- Remove `latest` alias from `.zshrc`
- Enable the `latest` program in the engineer feature module for both NixOS and Darwin

## Impact
- Affected specs: `shell-utilities`
- Affected code:
- `modules/programs/latest/` (new)
- `modules/features/engineer.nix` (add `latest.enable = true`)
- `.zshrc` (remove alias)
16 changes: 16 additions & 0 deletions spectr/changes/add-latest-program/specs/shell-utilities/spec.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## ADDED Requirements

### Requirement: Latest Program
The system SHALL provide a `latest` program that commits and pushes all changes with AI-generated commit messages using the `cldk` tool.

#### Scenario: User runs latest in git repository
- **WHEN** user executes `latest` in a git repository with uncommitted changes
- **THEN** the program invokes `cldk "commit and push all changes with good commit messages"` to stage, commit, and push changes with meaningful AI-generated messages

#### Scenario: Cross-platform availability
- **WHEN** the engineer feature is enabled on NixOS or Darwin
- **THEN** the `latest` program is available in the system PATH

#### Scenario: Replaces shell alias
- **WHEN** user previously used the `latest` alias in `.zshrc`
- **THEN** the `latest` program provides the same entry point with improved commit message quality
13 changes: 13 additions & 0 deletions spectr/changes/add-latest-program/tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## 1. Implementation

- [x] 1.1 Create `modules/programs/latest/` directory
- [x] 1.2 Create `modules/programs/latest/latest.nix` with Denix module pattern
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix filename reference in documentation.

The task references latest.nix, but the actual implementation uses default.nix (following the standard pattern for program modules).

Apply this diff:

-- [x] 1.2 Create `modules/programs/latest/latest.nix` with Denix module pattern
+- [x] 1.2 Create `modules/programs/latest/default.nix` with Denix module pattern
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [x] 1.2 Create `modules/programs/latest/latest.nix` with Denix module pattern
- [x] 1.2 Create `modules/programs/latest/default.nix` with Denix module pattern
🤖 Prompt for AI Agents
In spectr/changes/add-latest-program/tasks.md around line 4, the task item
references the wrong filename `modules/programs/latest/latest.nix` but the
implementation follows the standard module pattern and uses `default.nix`;
update the documentation to reference `modules/programs/latest/default.nix` (or
change the task wording to say "Create modules/programs/latest with a
default.nix Denix module") so the filename in the task matches the actual
implementation.

- [x] 1.3 Add `latest.enable = true` to `modules/features/engineer.nix` for NixOS
- [x] 1.4 Add `latest.enable = true` to `modules/features/engineer.nix` for Darwin
- [x] 1.5 Remove `latest` alias from `.zshrc`

## 2. Testing

- [x] 2.1 Run `nix flake check` to validate module syntax
- [x] 2.2 Run `nixos-rebuild build --flake .` to verify NixOS configuration builds
- [x] 2.3 Manually test `latest` command in a test git repository
Loading