Commit Graph

119 Commits

Author SHA1 Message Date
c5bdd44e55 fix(recipe): update regex to match Grok's current output style
Adjust the regex in handleApplyStep to flexibly match both old and new Grok formats for code blocks. Also, remove blank import for bufio as it's now used.
2026-03-06 22:21:58 +00:00
b2b8c1a482 refactor(recipe/runner): improve regex flexibility and simplify patch creation
- Update discoverFiles comment to be more concise.
- Enhance blockRe regex to optionally match leading "// " for filenames, supporting varied Grok output formats.
- Revise handleApplyStep comment to reflect regex changes.
- Simplify createUnifiedPatch by removing unnecessary error checks on fmt.Fprintf and defer closure.
2026-03-06 22:15:33 +00:00
40d40f7669 refactor(recipe): clean up runner implementation
- Adjust bufio import to blank (likely for side effects or pending use)
- Refine comments for clarity and remove unnecessary ones
- Split regex string to avoid backtick collisions in literals
- Add error handling to patch writing in createUnifiedPatch
- Minor formatting and defer close adjustments
2026-03-06 22:07:22 +00:00
7b415f8e26 feat(recipe): add file discovery and special step handling in runner
- Introduce discoverFiles function to scan Go files in 'internal' for error handling patterns.
- Add special case for "discover" or "find" steps to perform filesystem scans.
- Refine LLM prompting to enforce strict output format and shorten system prompt.
- Update apply/patch handling and unified patch creation with simplifications.
- Import bufio for potential future use and adjust regex for code block extraction.
2026-03-06 21:57:35 +00:00
852142730a refactor(recipe): enhance parsing for multi-line step content
Replace regex-based sub-section extraction with label-indexed parsing to
handle multi-line content, blank lines, and ensure reliability without
duplicates. Add clarifying comments for templates and summary extraction.
2026-03-06 21:48:35 +00:00
824bbcb85f refactor(recipe): simplify code block extraction regex
Update the regex in runner.go to use string concatenation for better readability.
Add test output files as fixtures for test verification.
2026-03-06 21:40:03 +00:00
b9de35f48b refactor(recipe): simplify apply step to dry-run only and add extraction tests
- Restrict filesystem interactions to apply/patch steps exclusively.
- Remove real apply logic with user confirmation; default to creating a patch file in dry-run mode.
- Update prompts, comments, and regex for better clarity and precision.
- Add unit tests for the extractCodeBlocks function to ensure reliable parsing.
2026-03-06 21:36:31 +00:00
5d0aec721d refactor(recipes): update result-refactor recipe for broader package path and error handling
- Change default package_path from internal/service to internal for wider applicability.
- Add instruction to output a specific message if no files are found or path does not exist in Step 1.
2026-03-06 21:11:17 +00:00
0ba427aaf6 feat(recipe): add apply/patch step handling with code block extraction and application
- Introduce special case in Runner.Run() for steps containing "apply" or "patch" in title.
- Add handleApplyStep to parse code blocks from previous results, support dry-run patch creation, or real application with user confirmation and backups.
- Implement extractCodeBlocks using regex to identify labelled Go code blocks.
- Add createUnifiedPatch for generating unified diff patches in dry-run mode.
- Remove final summary prompt and streamline recipe completion.
- Adjust system prompt for clarity.
2026-03-06 21:01:01 +00:00
d1ebd2af79 refactor(recipe): improve loading and execution logic
- Enhance recipe parsing in loader.go: extract overview, use split-based step extraction to avoid duplicates, refine final summary handling, and clean up comments/templates.
- Refine runner.go prompts: add Grok system message, simplify user prompts for conciseness, adjust result joining with separators, and remove unnecessary text.
2026-03-06 20:46:30 +00:00
5c67f78c27 feat(recipe): implement LLM-powered recipe execution
Add support for executing recipe steps via Grok API streaming, including parameter defaults from YAML, model selection via flags/config, previous step context, and a final summary prompt. Update runner to handle client and model, and refine loader to apply user params with fallbacks.
2026-03-06 20:32:04 +00:00
ec692b2086 docs(recipe): add feature overview for recipe system
Introduces a new Markdown file in todo/doing that outlines the recipe feature implementation, including key components, parsing logic, CLI integration, and progress checklist.
2026-03-06 19:16:57 +00:00
2cc728eed4 refactor(recipe): clean up comments, error handling, and output formatting
- Simplify import comments and error handling in cmd/recipe.go
- Streamline regex comment in internal/recipe/loader.go
- Enhance console output and add LLM placeholder in internal/recipe/runner.go
2026-03-06 19:00:16 +00:00
dcac119e57 fix(cmd/recipe): correct import path and add error handling for user input
- Updated import path for recipe package to match module name.
- Added error checking for fmt.Scanln to handle potential input errors gracefully.
2026-03-06 18:49:16 +00:00
8e414faa10 feat(cmd): add recipe run command
Implement the `recipe` command with `run` subcommand for executing transactional recipes.

- Resolve recipe paths: explicit, project-local (.grokkit/recipes), or global (~/.local/share/grokkit/recipes) with user prompt.
- Load and parse recipes using internal/recipe package.
- Integrate with root command and project root detection.
2026-03-06 18:45:03 +00:00
6bd72aad25 refactor(recipe): improve subRe regexp and add explanatory comments
Simplify the subRe regular expression by using a non-capturing group for the section labels instead of alternation, and switch the lookahead to a non-capturing group for consistency. Add comments to document the purpose of stepRe and subRe for better maintainability.
2026-03-06 18:39:56 +00:00
aa38e92fb5 feat(recipe): add recipe system for Result[T] refactoring
Implement recipe loading, parsing, and running infrastructure.
Add initial result-refactor recipe for converting Go error handling to monadic Result[T] style.
Includes markdown recipe definition, YAML frontmatter parsing, step extraction, and basic runner.
2026-03-06 18:35:58 +00:00
736fe4fcd6 Merge pull request 'fix(testgen): distinguish between C and C++ based on file extension' (#4) from fix/testgen_for_cpp into master
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 23s
CI / Build (push) Successful in 22s
Reviewed-on: #4
2026-03-06 14:40:00 +00:00
Gregory Gauthier
13b6c88ba3 fix(testgen): distinguish between C and C++ based on file extension
All checks were successful
CI / Test (pull_request) Successful in 55s
CI / Lint (pull_request) Successful in 33s
CI / Build (pull_request) Successful in 22s
Update language detection in testgen to set "C++" for files with .cpp, .cc, .cxx extensions, and "C" otherwise when the language is specified as "C/C++".
2026-03-06 14:36:49 +00:00
6f6596c13f chore(lint): simplify golangci-lint configuration
All checks were successful
CI / Test (push) Successful in 34s
CI / Lint (push) Successful in 27s
CI / Build (push) Successful in 22s
Reduce enabled linters to misspell with standard defaults, add gofmt formatter,
move errcheck settings, and minimize run and issues configurations for brevity.
2026-03-04 20:04:43 +00:00
f0322a84bd chore(lint): enhance golangci configuration and add security annotations
Some checks failed
CI / Test (push) Successful in 33s
CI / Lint (push) Failing after 17s
CI / Build (push) Successful in 21s
- Expand .golangci.yml with more linters (bodyclose, errcheck, etc.), settings for govet, revive, gocritic, gosec
- Add // nolint:gosec comments for intentional file operations and subprocesses
- Change file write permissions from 0644 to 0600 for better security
- Refactor loops, error handling, and test parallelism with t.Parallel()
- Minor fixes: ignore unused args, use errors.Is, adjust mkdir permissions to 0750
2026-03-04 20:00:32 +00:00
0cf0351826 chore(todo): remove priorities from queued items and add admin tool
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 21s
- Removed priority lines from various TODO markdown files
- Added new admin.md for grokkit admin tool
- Updated README.md with new entry
2026-03-04 19:23:03 +00:00
c35dbffe9b chore(ci): remove auto-complete TODO workflow
All checks were successful
CI / Test (push) Successful in 31s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 21s
Deleted the Gitea Actions workflow responsible for automatically moving TODO files from queued to completed on pull request events.
2026-03-04 18:27:48 +00:00
d92b88e90b Merge pull request 'Add --base Flag to prdescribe Command for Custom Base Branch Comparison' (#3) from fix/add_base_branch_to_prdescribe into master
All checks were successful
CI / Test (push) Successful in 32s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 21s
Reviewed-on: #3
2026-03-04 18:16:54 +00:00
b1d3a445ec feat(prdescribe): add configurable base branch flag
Some checks failed
Auto-complete TODO / move-todo (pull_request) Failing after 1s
CI / Test (pull_request) Successful in 34s
CI / Lint (pull_request) Successful in 24s
CI / Build (pull_request) Successful in 20s
Release / Create Release (push) Successful in 35s
Introduce a new --base flag (default: "master") to specify the base branch for diff comparison in the PR describe command. Update logic to use this base in git diff commands and fallback to origin/base. Adjust no-changes message accordingly. Add tests for custom base and default behavior.
2026-03-04 18:11:28 +00:00
Gregory Gauthier
11faf95573 chore(todo): move completed tasks to completed dir and update README
All checks were successful
CI / Test (push) Successful in 34s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
- Renamed queued/changelog.md and queued/non-interactive-query.md to completed/
- Updated README.md queued list: removed non-interactive-query, renumbered items, set TODO_ITEM to [99]
- Updated README.md completed list: added non-interactive-query, fixed changelog path to completed
2026-03-04 16:13:45 +00:00
Gregory Gauthier
d9b13739b5 docs(changelog): add entry for v0.1.9 release
All checks were successful
CI / Test (push) Successful in 32s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 20s
Introduce changelog updates for v0.1.9, including new query command implementation, configuration additions, README updates, and TODO revisions.
2026-03-04 16:02:21 +00:00
a6d52d890b Merge pull request 'feature/grokkit_query' (#2) from feature/grokkit_query into master
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
Release / Create Release (push) Successful in 34s
Reviewed-on: #2
2026-03-04 15:55:14 +00:00
Gregory Gauthier
587be3a046 docs: add grokkit query command documentation to README
Some checks failed
Auto-complete TODO / move-todo (pull_request) Failing after 1s
CI / Test (pull_request) Successful in 35s
CI / Lint (pull_request) Successful in 27s
CI / Build (pull_request) Successful in 21s
- Added entry to commands list
- Created new section with usage examples and features
2026-03-04 15:50:46 +00:00
Gregory Gauthier
cc6a2f642f feat(cmd): add query command for one-shot technical questions
- Implement new `query` command in cmd/query.go for non-interactive Grok queries focused on programming
- Add wordy flag for detailed responses
- Update root.go to include queryCmd
- Set default model for query in config.go
- Add .grok/settings.json with fast model configuration
2026-03-04 15:39:41 +00:00
Gregory Gauthier
5bf6b0c91c docs(todo): reorganize queued tasks and update completed items
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
- Reordered and updated queued task list with new entries like non-interactive-query.md.
- Moved changelog.md to completed with version note.
- Standardized link formats and list markers in README.md.
2026-03-04 09:50:54 +00:00
Gregory Gauthier
f6ff1f990a docs(todo): update title and description for non-interactive-query
All checks were successful
CI / Test (push) Successful in 36s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 21s
Rename from "grokkit query Go tools integration" to "grokkit query Simple Query Tool"
and revise description to focus on a one-shot prompt/answer tool for concise queries.
2026-03-04 09:37:24 +00:00
Gregory Gauthier
5d251e88d4 docs(todo): add spec for grokkit non-interactive query tool
All checks were successful
CI / Test (push) Successful in 41s
CI / Lint (push) Successful in 28s
CI / Build (push) Successful in 22s
Adds a detailed description, examples, and ROI for the `grokkit query` feature, focusing on concise programming Q&A with optional wordy mode.
2026-03-04 09:25:07 +00:00
1e95d3613d docs(changelog): add initial CHANGELOG.md with v0.1.8 entries
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 22s
Introduces a new CHANGELOG.md file documenting notable changes, including added features like release scripts, grokkit changelog command, git helpers, tests, and TODO/README updates. Also covers changes such as flag adjustments, CI updates, README modifications, task reprioritization, and removal of file backups in favor of Git-based management.
2026-03-03 22:34:02 +00:00
5f93b43cd6 refactor(changelog): change version flag shorthand to uppercase V
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 27s
CI / Build (push) Successful in 21s
Release / Create Release (push) Successful in 37s
Update the shorthand from "v" to "V" in the changelog command and adjust the corresponding test assertion.
2026-03-03 22:27:49 +00:00
162504fa88 feat(release): add release.sh script
All checks were successful
CI / Test (push) Successful in 34s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 21s
Introduce a bash script to automate the Grokkit release process. It handles version validation, git tag creation, changelog generation via grokkit changelog, committing changes via grokkit commit, and pushing to the repository. Includes safety checks and user confirmations.
2026-03-03 22:21:29 +00:00
6005a2192a chore(ci): disable coverage threshold enforcement
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 19s
Comment out the step in CI workflow that enforces a minimum test coverage of 65%.
2026-03-03 22:14:07 +00:00
c84a9561bc docs(readme): add changelog to command list
Some checks failed
CI / Test (push) Failing after 1m1s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
Update the README to include the new grokkit-changelog command in the list of features.
2026-03-03 22:08:40 +00:00
db96cf5229 docs(README): add section for grokkit changelog command
Some checks failed
CI / Test (push) Failing after 26s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
Document the new `grokkit changelog` command, including usage examples for generating changelog sections suitable for Gitea release notes.
2026-03-03 22:06:45 +00:00
ce5367c3a7 feat(cmd): add changelog command for AI-generated release notes
Some checks failed
CI / Test (push) Failing after 27s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
- Implement `grokkit changelog` command with flags for version, since, stdout, and commit reminder
- Add git helpers for latest/previous tags and formatted log since ref
- Include tests for message building and full changelog construction
2026-03-03 21:59:09 +00:00
c5bec5ce43 chore(todo): reprioritize queued tasks with changelog at top
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 21s
- Reorder README.md queued list to prioritize changelog first, followed by interactive-agent, make, tea, and gotools.
- Update priorities in individual queued/*.md files accordingly.
- Add detail to changelog.md about using generated CHANGELOG.md for Gitea release notes.
2026-03-03 21:11:33 +00:00
95ce892fa4 docs(todo): update queued task priorities and add README
All checks were successful
CI / Test (push) Successful in 34s
CI / Lint (push) Successful in 39s
CI / Build (push) Successful in 21s
Adjusted priorities for features including audit, changelog, gotools, interactive-agent, and rg.
Added todo/README.md as a table of contents listing all queued and completed tasks.
2026-03-03 21:00:03 +00:00
f33e27cfbf refactor(safety): replace file backups with Git-based change management
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
Update safety features to leverage Git for version control and rollbacks instead of creating .bak files. This includes:
- Removing backup mentions from README.md, cmd/lint.go, ARCHITECTURE.md, and TROUBLESHOOTING.md
- Adding detailed Git workflow for managing changes in README.md
- Updating troubleshooting guide with Git rollback instructions
- Modifying feature lists and safety descriptions to emphasize Git integration
2026-03-03 20:49:27 +00:00
81fd65b14d refactor(cmd): remove automatic .bak backup creation
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 19s
Eliminate .bak file backups from edit, docs, lint, testgen, and agent commands to simplify safety features, relying on previews and confirmations instead. Update README, architecture docs, troubleshooting, and TODOs to reflect changes. Adjust tests to remove backup assertions.
2026-03-03 20:44:39 +00:00
7881ac2446 refactor(testgen): enforce stricter rules in Go test prompt
All checks were successful
CI / Test (push) Successful in 27s
CI / Lint (push) Successful in 19s
CI / Build (push) Successful in 14s
Release / Create Release (push) Successful in 1m58s
Update the test generation prompt for Go to prohibit monkey-patching, global variable reassignments, and reflect tricks. Mandate use of only idiomatic Go with real function calls, table-driven tests, and simple happy/error path coverage. Simplify unit and live test structures for better production readiness.
2026-03-03 19:25:33 +00:00
fd9fbee655 refactor(testgen): enhance debugging for empty responses and refine Go test prompt
Some checks failed
CI / Test (push) Successful in 29s
CI / Lint (push) Failing after 7s
CI / Build (push) Failing after 6s
- Add user-facing message showing the selected model
- Implement detailed error logging when AI response is empty, including raw preview
- Update Go test generation prompt for better naming, rules against monkey-patching, and simplicity
2026-03-03 18:58:40 +00:00
b76aa6f800 refactor(testgen): generalize Go test generation prompt
All checks were successful
CI / Test (push) Successful in 28s
CI / Lint (push) Successful in 19s
CI / Build (push) Successful in 15s
- Remove Grokkit-specific references to make the prompt more versatile.
- Update unit and live test patterns for broader applicability, including standard testing.T usage.
- Adjust test name derivation and skip messages for consistency.
- Sync test assertions in testgen_test.go with the updated prompt.
2026-03-03 18:27:49 +00:00
b82016028e refactor(testgen): refine Go test prompt to match scaffold style exactly
All checks were successful
CI / Test (push) Successful in 28s
CI / Lint (push) Successful in 18s
CI / Build (push) Successful in 15s
- Updated getTestPrompt for Go to enforce exact test structure: unit with t.Parallel() and logs, optional live with precise skip message.
- Ensured test name derivation, no unused imports, and pure output.
- Added example TestTestgenCmd_Unit and _Live in testgen_test.go to demonstrate the new pattern.
- Minor fixes to Python and C prompts for consistency.
2026-03-03 18:06:13 +00:00
Gregory Gauthier
d1eaa5234b refactor(testgen): update Go prompt to enforce unit + live test pattern
All checks were successful
CI / Test (push) Successful in 28s
CI / Lint (push) Successful in 18s
CI / Build (push) Successful in 15s
- Modify user message to reference new pattern in system prompt
- Revise Go test prompt for exact unit/live structure matching scaffold_test.go
- Update testgen_test.go to match new prompt prefix
2026-03-03 16:52:50 +00:00
Gregory Gauthier
0ef58cb5a4 fix(cmd): use Fprintf for efficiency and handle Chdir error in tests
All checks were successful
CI / Test (push) Successful in 25s
CI / Lint (push) Successful in 37s
CI / Build (push) Successful in 15s
- Replace WriteString + Sprintf with Fprintf in harvestContext for better performance.
- Wrap deferred Chdir in scaffold tests with error logging to avoid silent failures.
2026-03-03 15:50:30 +00:00