Skip to content

feat: support @workdir directive to run commands in a specific directory#22

Merged
sleipi merged 3 commits into
mainfrom
feat/workdir-directive
May 22, 2026
Merged

feat: support @workdir directive to run commands in a specific directory#22
sleipi merged 3 commits into
mainfrom
feat/workdir-directive

Conversation

@sleipi
Copy link
Copy Markdown
Owner

@sleipi sleipi commented May 22, 2026

Summary

Add @workdir ./path directive that sets the working directory for a command's execution. Supported both as file-level (in frontmatter) and entry-level directive.

Cascading: cwd (default)file-level @workdirentry-level @workdir

Changes

  • Types: Added Workdir string to EntryDirectives and FileDirectives
  • Parser: Handles @workdir in frontmatter and entry directives
  • Runner: All run functions accept dir parameter, set cmd.Dir
  • Resolution: Relative paths resolve relative to the .clitest file's directory; validated at load time
  • Docs: SPEC.md updated, example added, ROADMAP marked complete

Tests

E2E tests covering: relative path, file-level, entry-level override, missing dir error, defer inherits file-level.

Closes #21

sleipi added 3 commits May 22, 2026 07:56
…ctory

Add @workdir directive at both file-level (frontmatter) and entry-level.
Entry-level overrides file-level. Relative paths resolve relative to the
.clitest file's directory. Fails with clear error if directory does not exist.

- Parser recognizes @workdir in frontmatter and entry directives
- Runner accepts dir parameter, sets cmd.Dir before execution
- Works with EXIT NEVER, @defer, and [Prompts] entries
- E2E tests covering: relative path, file-level, entry override, missing dir, defer inheritance

Closes #21
- Combine param types in Run(command, dir string)
- Use filepath.Clean before os.Stat to satisfy gosec G703
@sleipi sleipi added the enhancement New feature or request label May 22, 2026
@sleipi sleipi merged commit d0f8a14 into main May 22, 2026
4 checks passed
@sleipi sleipi deleted the feat/workdir-directive branch May 22, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: support @workdir directive to run commands in a specific directory

1 participant