Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
05ad51a
feat: replace llm-chain with minimal OpenAI provider (#10)
chaliy Jan 9, 2026
ca8cd99
chore: setup crates.io publishing (#11)
chaliy Jan 10, 2026
1e0a77e
feat: add user-friendly error handling with icons (#13)
chaliy Jan 10, 2026
1c4ea10
feat: add multimodal image support for prompts (#12)
chaliy Jan 10, 2026
971ef4a
docs: update install instructions to use cargo install trickery (#14)
chaliy Jan 10, 2026
e0928e2
docs: add demo screenshot to README (#15)
chaliy Jan 10, 2026
afd1c9d
chore: bump version to 0.1.1 and update dependencies (#16)
chaliy Jan 10, 2026
11191fc
refactor: reimplement test cases with structured format (#17)
chaliy Jan 10, 2026
cf6e2df
feat: add image generation and editing command (#18)
chaliy Jan 10, 2026
fe8ee71
chore: add MSRV 1.75 to Cargo.toml (#19)
chaliy Jan 10, 2026
4e7b4bd
docs: document OPENAI_BASE_URL env variable for custom endpoints (#20)
chaliy Jan 10, 2026
bf48050
feat: add help --full option for comprehensive CLI documentation (#22)
chaliy Jan 10, 2026
aad6b05
chore: bump version to 0.1.2 (#21)
chaliy Jan 10, 2026
d9c3331
docs: reorganize docs, add index, and regenerate README (#23)
chaliy Jan 10, 2026
27500e8
feat: add text input support (#24)
chaliy Jan 10, 2026
db6659d
chore: bump version to 0.1.3 (#25)
chaliy Jan 10, 2026
16971b4
chore: update Cargo.lock for v0.1.3 (#27)
chaliy Jan 10, 2026
9140891
docs: emphasize coding agent friendly design across documentation (#26)
chaliy Jan 10, 2026
a87e177
docs: clarify agent-friendly badge refers to repo structure (#28)
chaliy Jan 11, 2026
bfaf1c1
chore: remove claude attribution from commits and PRs
chaliy Mar 11, 2026
bc1205b
chore: upgrade dependencies
chaliy May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"attribution": {
"commit": "",
"pr": ""
}
}
29 changes: 29 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Publish to crates.io

on:
release:
types: [published]

env:
CARGO_TERM_COLOR: always

jobs:
publish:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo
uses: Swatinem/rust-cache@v2

- name: Run tests
run: cargo test --verbose

- name: Publish to crates.io
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
73 changes: 68 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,13 @@ Critical Thinking Fix root cause (not band-aid). Unsure: read more code; if stil

## Top level requirements

- CLI tool for generating textual artifacts using LLM
- Uses llm-chain for LLM integration with OpenAI
- Coding Agent friendly tool to magically generate text and images
- CLI for generating textual and visual artifacts using LLM
- Minimal self-contained OpenAI provider (no external LLM libraries)
- Supports Jinja2-like template variables in prompts
- Designed for CI/CD integration
- Model selection and reasoning level configuration
- Designed for CI/CD integration and AI agent workflows
- Rich error messages with recovery hints for agent self-correction

## Local dev expectations

Expand All @@ -37,11 +40,19 @@ src/
├── output.rs # JSON output utilities
├── commands/
│ ├── mod.rs # Command traits (CommandExec, CommandResult)
│ └── generate.rs # Generate command implementation
│ ├── generate.rs # Generate command implementation
│ └── image.rs # Image generation command implementation
├── provider/
│ ├── mod.rs # Provider abstraction types (Chat + Responses API)
│ └── openai.rs # OpenAI provider implementation
└── trickery/
├── mod.rs
└── generate.rs # LLM template generation logic
├── generate.rs # LLM template generation logic
└── image.rs # Image generation logic
prompts/ # Example prompt templates
test_cases/ # Test case templates for generate command
specs/ # Feature specifications
docs/ # Feature documentation
```

## Naming
Expand All @@ -63,6 +74,13 @@ CI is implemented using GitHub Actions (`.github/workflows/ci.yaml`):
2. Linting: Run `cargo clippy` and fix warnings
3. Tests: Ensure `cargo test` passes
4. Build: Ensure `cargo build` succeeds
5. Full help: If CLI options changed, update `print_full_help()` in `src/main.rs`
6. Lockfile: Run `cargo update --workspace` after version bumps or dependency changes to sync Cargo.lock
7. README: If README needs changes, update `prompts/trickery_readme.md` and regenerate with `trickery generate ./prompts/trickery_readme.md > README.md`

## Attribution

NEVER add links to Claude sessions in PR body or commits. Also never attribute commit or merge commit to coding agents, always use real user.

## Commit message conventions

Expand Down Expand Up @@ -102,3 +120,48 @@ High-level approach.
- [ ] Smoke tests are passed
- [ ] Documentation is updated
```

## Specs

`specs/` folder contains feature specifications outlining requirements for specific features and components. New code should comply with these specifications or propose changes to them.

Available specs:

- `coding-agent-design.md` - Agent-friendly design principles, error recovery, discoverability
- `llm-provider.md` - LLM provider abstraction, OpenAI integration, design choices
- `text-input.md` - Direct text input via --text option, alternative to file input

Specification format: Abstract and Requirements sections.

## Test Cases

`test_cases/` folder contains manual smoke test cases for validating CLI functionality. Run these after changes to verify behavior.

Available test cases:

- `basic_generation.md` - Simple prompt generation without variables
- `template_variables.md` - Jinja2-style variable substitution
- `json_output.md` - JSON output format flag
- `image_multimodal.md` - Image input for multimodal prompts
- `image_generate.md` - Image generation and editing command
- `error_handling.md` - Error scenarios and messages
- `text_input.md` - Direct text input via --text option

### Test case template

```markdown
# Test: <Name>

## Abstract
<One sentence describing what this test validates>

## Prerequisites
- `cargo install --path .`
- <Other required setup, env vars, files>

## Steps

### 1. <Step name>
**Run:** `trickery <command>`
**Expect:** <Expected outcome>
```
Loading
Loading