feat: add pull-prompt-log and load-prompt commands for prompt management
- Create `pull-prompt-log` script to sync `origin/prompt-log` into the worktree - Update `init-prompt-log` to automatically pull remote changes if the branch exists - Implement `load-prompt` script with `fzf` for interactive selection of historical prompts - Copy selected prompt content to `prompt.md` - Update `docs/library.md` with documentation for new commands - Update `scripts.txt` to include new script names - Update `prompt.md` metadata to reflect task completion
This commit is contained in:
6 files changed
+126
-135
No files matched your search
@@ -1,14 +1,15 @@
|
||||
---
|
||||
title: "Replace 11ty with Zensical"
|
||||
commit_ref:
|
||||
title: "Pull prompt-log"
|
||||
author: "Janik von Rotz <login@janikvonrotz.ch>"
|
||||
state: completed
|
||||
date_completed: 2026-10-05
|
||||
date_completed: 2025-10-06
|
||||
model: moonshotai/Kimi-K2.6
|
||||
input_tokens: 1531296
|
||||
output_tokens: 10644
|
||||
input_tokens: 520337
|
||||
output_tokens: 4110
|
||||
---
|
||||
|
||||
# Replace 11ty with Zensical
|
||||
# Pull prompt-log
|
||||
|
||||
Note: @Clanker refers to the "ai agent" (you) who is working on this prompt file.
|
||||
|
||||
@@ -18,149 +19,47 @@ Note: @Clanker refers to the "ai agent" (you) who is working on this prompt file
|
||||
- Prepare a list of todos
|
||||
- Update the todo list while working on task
|
||||
|
||||
## Todo
|
||||
|
||||
- [x] Remove Node/11ty files from project root
|
||||
- [x] Create bin scripts for 11ty commands
|
||||
- [x] Create bin scripts for Zensical
|
||||
- [x] Move markdown files and assets to docs folder
|
||||
- [x] Setup Zensical configuration
|
||||
- [x] Recreate randomFunctionNames.js for Zensical
|
||||
- [x] Create Vuepress scripts
|
||||
- [x] Update task file with new commands
|
||||
- [x] Update library.md with new sections
|
||||
- [x] Update task.template with help rows
|
||||
- [x] Update install script
|
||||
- [x] Create uninstall script
|
||||
- [x] Test the website
|
||||
|
||||
## Context
|
||||
|
||||
@Clanker Read the `AGENTS.md` and `README.md` to get an understanding of the project.
|
||||
|
||||
## Task
|
||||
|
||||
I want to replace https://www.11ty.dev/ with https://zensical.org/. First check current 11ty setup:
|
||||
Create a new command `pull-prompt-log`.
|
||||
|
||||
- Navigation: ./_includes/layouts/base.njk
|
||||
- Assets:
|
||||
- ./img
|
||||
- ./js
|
||||
- Markdown:
|
||||
- development.md
|
||||
- examples.md
|
||||
- library.md
|
||||
- patterns.md
|
||||
- README.md
|
||||
- usage.md
|
||||
- Node files:
|
||||
- eleventy.config.js
|
||||
- package-lock.json
|
||||
- patterns.md
|
||||
- pnpm-lock.yaml
|
||||
- node_modules
|
||||
- Task commands: `./task help | grep 11ty`
|
||||
When initializing the prompt-log and the origin exists, then pull it:
|
||||
|
||||
### Remove Node/11ty
|
||||
|
||||
Start by removing the Node/11ty files.
|
||||
|
||||
### Create bin files for 11ty commands
|
||||
|
||||
Move the 11ty functions into scripts in the `bin` folder:
|
||||
|
||||
- `bin/dev-11ty-docs`
|
||||
- `bin/build-11ty-docs`
|
||||
- `bin/serve-11ty-docs`
|
||||
|
||||
Create a new `bin/init-11ty-docs` that installs 11ty with `pnpm`.
|
||||
|
||||
Add a "11ty" section to the `library.md` and add help rows to the `task.template`.
|
||||
|
||||
### Setup Zensical
|
||||
|
||||
Similar o the 11ty commands create:
|
||||
|
||||
- `bin/init-zensical-docs`
|
||||
- `bin/dev-zensical-docs`
|
||||
- `bin/build-zensical-docs`
|
||||
- `bin/serve-zensical-docs`
|
||||
|
||||
The `init-zensical-docs` uses `activate-venv`, installs zensical according to https://zensical.org/docs/get-started/#install-with-uv and finally initalizes the project with `zensical new .`. If possible pass option to not create the `.github` workflow.
|
||||
|
||||
Add a "Zensical" section to the `library.md` and add help rows to the `task.template`.
|
||||
|
||||
### Move to docs
|
||||
|
||||
Move the mentioned markdown files and assets to the `docs` folder.
|
||||
|
||||
Setup the file navigation and link structure.
|
||||
|
||||
Use `./task dev-11ty-docs` to check the site.
|
||||
|
||||
Ensure the website is working as before.
|
||||
|
||||
### Recreate randomFunctionNames.js
|
||||
|
||||
There is js script `js/randomFunctionNames.js` that adds name generator to `example.md`. Try to load the js code accoring to https://zensical.org/docs/customization/#additional-javascript and move the function to the appropriate folder.
|
||||
|
||||
### Create vuepress scripts
|
||||
|
||||
This is a nice-to-have-task. Many other projects such as `~/Odoo-Build` use Vuepress to build the static site.
|
||||
|
||||
```
|
||||
Odoo-Build]$ task help | grep vuepress
|
||||
| build-vuepress | | Create vuepress build. |
|
||||
| dev-vuepress | | Start vuepress development server. |
|
||||
| install-vuepress | | Install build dependencies. |
|
||||
| serve-vuepress | | Serve vuepress build. |
|
||||
```bash
|
||||
[main][~/taskfile.build]$ t init-prompt-log
|
||||
Remote branch origin/prompt-log already exists.
|
||||
Preparing worktree (checking out 'prompt-log')
|
||||
HEAD is now at 0d9704d init: prompt-log branch
|
||||
Created prompt-log worktree at tmp/prompt-log.
|
||||
*[main][~/taskfile.build]$ t list-prompts
|
||||
No prompt files found.
|
||||
```
|
||||
|
||||
Create bin scripts for these commands as well:
|
||||
I had to fix it like this:
|
||||
|
||||
- `build-vuespress` -> `build-vuepress-docs`
|
||||
- `dev-vuespress` -> `dev-vuepress-docs`
|
||||
- `install-vuespress` -> `init-vuepress-docs`
|
||||
- `serve-vuespress` -> `serve-vuepress-docs`
|
||||
```bash
|
||||
*[main][~/taskfile.build]$ git -C tmp/prompt-log branch --set-upstream-to=origin/prompt-log prompt-log
|
||||
branch 'prompt-log' set up to track 'origin/prompt-log'.
|
||||
*[main][~/taskfile.build]$ git -C tmp/prompt-log pull
|
||||
Successfully rebased and updated refs/heads/prompt-log.
|
||||
```
|
||||
|
||||
For the `init-vuepress-docs` additional packages are required. Check the `package.json` for details.
|
||||
Then also create new task `load-prompt`. It shows an fzf dialog and then copies the content of the selected prompt to the `prompt.md`.
|
||||
|
||||
When the project is initalized it also has to create the `dev` and `build` scripts in `package.json`
|
||||
Update `library.md` with the new commands.
|
||||
|
||||
Ignore the copy snippet files instructions of the `Odoo-Build/task`.
|
||||
|
||||
Add a "Vuepress" section to the `library.md` and add help rows to the `task.template`.
|
||||
|
||||
### Update install script
|
||||
|
||||
Finally I want you to update the `./install` script. Find a way to list the `bin` scripts. I do not want update this file manually.
|
||||
|
||||
Also create an `uninstall` script. That removes the scripts provided by `taskfile.build`.
|
||||
|
||||
### Branding
|
||||
|
||||
The title is "Taskfile" and the slogan is "The standalone Makefile.".
|
||||
|
||||
## Worklog
|
||||
|
||||
Completed the migration from 11ty to Zensical. Verified and fixed the following:
|
||||
- Created `bin/pull-prompt-log` command that sets upstream to `origin/prompt-log` and pulls changes into the worktree.
|
||||
- Updated `bin/init-prompt-log` to call `pull-prompt-log` automatically when `origin/prompt-log` already exists.
|
||||
- Created `bin/load-prompt` command with `fzf` interactive selection that copies a selected prompt from the prompt-log worktree to `prompt.md`.
|
||||
- Updated `docs/library.md` with documentation for both new commands.
|
||||
- Ran shellcheck and syntax validation on new/modified scripts. Updated `scripts.txt` via `./task update-install-script`.
|
||||
|
||||
- Fixed a syntax bug in `task.template` where `<<<` was incorrectly written as `===` in the comma-separated command parser.
|
||||
- Removed legacy `package.json` (containing 11ty dependencies) from the project root.
|
||||
- Updated `.gitignore` to replace `_site`/`node_modules` with `site`/`.venv`.
|
||||
- Fixed `zensical.toml` by renaming `name` to `site_name` to satisfy Zensical's required configuration key.
|
||||
- Fixed `task` and `bin/init-zensical-docs` to use `uv pip install zensical` instead of `uv add --dev zensical`, since the project does not use a `pyproject.toml`.
|
||||
- Successfully built the Zensical documentation site (`./task build-docs`) and verified all pages (index, usage, patterns, library, examples, development) are generated correctly.
|
||||
- Verified that custom assets (`stylesheets/style.css`, `javascripts/extra.js`) are included in the build output.
|
||||
- Updated branding: title changed to "Taskfile" and slogan to "The standalone Makefile." in `docs/index.md` and `zensical.toml`.
|
||||
- Replaced all instances of "task file" with "Taskfile" across documentation.
|
||||
- Fixed `zensical.toml` `nav` config to use `[[project.nav]]` array-of-tables syntax for correct tab labels.
|
||||
- Fixed `zensical.toml` `copyright` key placement to render properly in footer.
|
||||
- Added Material theme dark/light mode toggle with `palette.toggle` config.
|
||||
- Added logo/favicon to `zensical.toml` theme config and CSS filter for dark mode logo inversion.
|
||||
- Styled the "Generate Function Names" button in `docs/stylesheets/style.css`.
|
||||
- Created `docs/image.md` from `image/README.md` and added "Image" nav tab.
|
||||
- Created `README.md` with project overview and development commands.
|
||||
- Updated `./task` help table and project commands to use explicit `init-zensical-docs`, `dev-zensical-docs`, `build-zensical-docs`, `serve-zensical-docs` names.
|
||||
|
||||
The website builds and serves correctly with Zensical.
|
||||
@Clanker Set frontmatter state to completed and update date and model. If you have access to session info also add token count.
|
||||
Reference in new issue
Block a user