Why Manage Instructions as Code?
Your analytics knowledge—business definitions, calculation formulas, SQL patterns—shouldn’t live in a UI or people’s heads. Treating instructions as code brings the same rigor you use for data pipelines:- Version control: Full history of what changed, when, and why
- Code review: Team members review instruction changes before they go live
- Automated testing: Run evals on every PR to catch regressions
- Single source of truth: Documentation stays in sync with your data models
- Collaboration: Data engineers, analysts, and AI work from the same definitions

Connecting a Repository
Connect your Git repository in Data Sources. Bow supports:Repository Settings
Writing Instructions in Markdown
Create.md files in your repository with YAML frontmatter to control how Bow loads them.
Basic Example
Frontmatter Options
Git CI/CD Integration
Automate your instruction workflow: create instructions in Git, run evals on PR, and deploy on merge.Prerequisites
- Git Repository connected to Bow with a Personal Access Token (PAT)
- API Key from Bow Settings → API Keys
- Test Suite with test cases configured in Bow
API Reference
Base API URL should be with
/api suffix. i.e https://app.bagofwords.com/apiGitHub Actions Setup
1. Add Repository Secrets
2. Add Repository Variable
3. Create Workflow File
Create.github/workflows/bow.yml:
How It Works
On PR Open/Update
- Sync:
POST /git/{repo_id}/syncpulls your branch and creates a draft build - Eval:
POST /tests/runs/batchruns your test suite against the draft build - Report: Results are posted as a PR comment
On PR Merge
- Publish:
POST /builds/{build_id}/publishpromotes the draft build to main - Your instructions are now live in Bow
Unlinking from Git
If you need to modify a Git-synced instruction directly in Bow:- Edit the instruction in Bow
- Save changes
- Confirm “Unlink from Git” when prompted
