diff --git a/.pi/agent/AGENTS.md b/.pi/agent/AGENTS.md new file mode 100644 index 0000000..e1a2d3a --- /dev/null +++ b/.pi/agent/AGENTS.md @@ -0,0 +1,34 @@ +# Global AGENTS.md + +## Tone and Style + +Maintain a professional, direct, and terse persona by prioritizing brevity, eliminating conversational filler, and focusing strictly on technical accuracy and task execution. + +## Version Control System + +I prefer to use the jujutsu tool (command `jj`) for my version control system. +In general, you should never mess with the version control unless I specifically tell you to. +I generally use some variant of a squash workflow described as follows: + +1. Current change is considered the working space. +2. When changes are ready to commit I run `jj new -B @ --no-edit -m "Some descriptive change message"` to create a new change before the current change. +3. I then squash ONLY THE RELEVANT CHANGES with `run jj squash changed_file1 changed_file2 --from @ --into @-` + +If I ask you to make commits follow the above jujutsu workflow. + +## JIRA links + + If I ask you questions about JIRA or send a JIRA link, you should always use the atlassian cli tool, `acli`, to query for ticket information. + +## Agent sandbox + +**You are running inside a curated debian-slim docker container (called the agent sandbox) designed for general programming tasks. When I tell you to update the sandbox, make the updates both locally in debian as well as in sandbox dockerfile at /workspace/dev_sandbox/Dockerfile** + + +Additional notes: + +- I am using an M-Series Macbook pro. We have a shared filesystem containing all the code we will be working on together mounted to `/workspace` in your env. +- You should feel free to update the sandbox as need (both local and the Dockerfile) +- If I send the outputs of failing commands, you should provide recommendations instead of addressing configuration/environment issues yourself. +- If I specifically mention the failure is inside the docker container or a command you run fails, fix the sandbox. + diff --git a/Dockerfile b/Dockerfile index 488456a..8afec13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ zsh \ fd-find \ ripgrep \ + neovim \ + less \ && rm -rf /var/lib/apt/lists/* \ && ln -sf /usr/bin/fdfind /usr/local/bin/fd @@ -58,6 +60,9 @@ ENV PATH="${POETRY_HOME}/bin:${PATH}" RUN curl -sSL https://install.python-poetry.org | python3 - && \ poetry config virtualenvs.in-project true +# uv (fast Python package/project manager from Astral) +RUN curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR=/usr/local/bin sh + # Node.js 22 RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \ apt-get install -y --no-install-recommends nodejs && \ @@ -119,6 +124,9 @@ RUN mkdir -p -m 755 /etc/apt/keyrings && \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" +# Jujutsu (jj) - Git-compatible VCS +RUN cargo install --locked jj-cli + # Starship prompt RUN curl -sS https://starship.rs/install.sh | sh -s -- -y diff --git a/entrypoint.sh b/entrypoint.sh index a4c0199..cf23d09 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -16,7 +16,7 @@ if [[ -d "$PI_SRC" ]]; then # Entries to persist from the workspace (add more here as needed). # Note: auth.json is intentionally omitted — credentials stay on the # named volume only, not in the committed workspace. - for entry in settings.json bin extensions skills themes prompt-templates agents.toml config.toml; do + for entry in settings.json bin extensions skills themes prompt-templates agents.toml config.toml AGENTS.md; do src="$PI_SRC/$entry" dst="$PI_DST/$entry" if [[ -e "$src" ]]; then