Skip to content

chore: gitignore pipeline runtime state (.pipeline/.runtime, .pipeline/.stats) - #51

Merged
IvanMurzak merged 1 commit into
mainfrom
chore/gitignore-pipeline-runtime
Aug 13, 2026
Merged

chore: gitignore pipeline runtime state (.pipeline/.runtime, .pipeline/.stats)#51
IvanMurzak merged 1 commit into
mainfrom
chore/gitignore-pipeline-runtime

Conversation

@IvanMurzak

Copy link
Copy Markdown
Owner

Problem

The ai-pipeline plugin writes machine-generated runtime state into
<repo>/.pipeline/.runtime/ (an events.jsonl plus transcript .offset files)
in whatever repo it runs in. Because that state is untracked and unignored, it
shows up as repo dirt — which in turn blocks the --parallel>1 main-checkout
cleanliness gate in our orchestration tooling.

Fix

Ignore the two machine-generated siblings, mirroring the pattern already in the
software superproject root .gitignore:

.pipeline/.runtime/
.pipeline/.stats/

Note this deliberately ignores the siblings only, not the whole
.pipeline/ directory: .pipeline/.hooks/ is tracked on purpose (the pipeline
plugin resolves the consumer's worktree hooks from <root>/.pipeline/.hooks),
so it must stay trackable here if this repo ever gains real pipeline hooks.

Verification

git check-ignore -v against the new lines:

Path Result
.pipeline/.runtime/events.jsonl ignored — matches .pipeline/.runtime/
.pipeline/.stats/foo.json ignored — matches .pipeline/.stats/
.pipeline/.hooks/worktree-create.py NOT ignored (exit 1) — the regression this pattern exists to avoid

Also confirmed against real files on disk: with all four paths materialised,
git status --porcelain -uall lists only .pipeline/.hooks/worktree-create.py
as untracked; the runtime and stats files are invisible. Probe files removed
before committing.

No other content in .gitignore was reordered or reformatted.

…e/.stats)

The ai-pipeline plugin writes machine-generated runtime state into
`<repo>/.pipeline/.runtime/` (events.jsonl, transcript .offset files) in
whatever repo it runs in. Untracked, that state shows up as repo dirt and
blocks the main-checkout cleanliness gate in our orchestration tooling.

Mirrors the pattern already in the `software` superproject root .gitignore:
ignore the `.runtime/` and `.stats/` siblings only, NOT the whole
`.pipeline/` directory — `.pipeline/.hooks/` is deliberately tracked (the
plugin resolves consumer worktree hooks from `<root>/.pipeline/.hooks`) and
must stay trackable here if this repo later gains real pipeline hooks.

Verified with `git check-ignore -v`: `.pipeline/.runtime/events.jsonl` and
`.pipeline/.stats/foo.json` both match the new lines, while
`.pipeline/.hooks/worktree-create.py` is NOT ignored.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGfFF7821pBRND3VrdMVaw
@IvanMurzak
IvanMurzak merged commit 2f126c7 into main Aug 13, 2026
63 checks passed
@IvanMurzak
IvanMurzak deleted the chore/gitignore-pipeline-runtime branch August 13, 2026 06:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant