Projector Tool¶
Most conversations with Amplifier are about immediate work — fix this bug, write this function, explore this module. But real projects span weeks and months, with goals that evolve, strategies that shift, and work that accumulates across many sessions. The Projector tool is how Amplifier tracks that longer arc: projects with strategies, tasks, and outcomes that persist across every session you have.
Think of Projector as a lightweight project management layer built into your coding assistant. It doesn't replace Jira or Linear — it gives Amplifier itself memory about what you're trying to accomplish, so it can bring relevant context to every conversation without you having to re-explain your project's goals.
What Is Projector?¶
Projector manages four connected concepts:
| Concept | What It Holds | Lifespan |
|---|---|---|
| Projects | Named containers for related work | Permanent until deleted |
| Strategies | Persistent guidelines and priorities for a project | Persist across sessions, injected via hooks |
| Tasks | Individual work items within a project | Tracked until completed |
| Outcomes | Records of what happened in each session | Logged per session, accumulated over time |
The key insight is strategies. A strategy isn't a one-time instruction — it's a persistent directive that Amplifier sees at the start of every session related to that project. Set a strategy once, and it shapes every future conversation until you change it.
Core Capabilities¶
Projector has thirteen operations, organized around the four concepts.
Projects — The Container¶
create_project — start tracking a new project:
I'm starting work on the payment system rewrite
[Tool: projector] create_project
project: "payment-rewrite"
data: {
"description": "Rewrite the legacy payment system to use Stripe",
"goals": ["Replace PayPal integration", "Add subscription support", "Improve error handling"]
}
✓ Project "payment-rewrite" created.
get_project — see the full state of a project:
[Tool: projector] get_project
project: "payment-rewrite"
Project: payment-rewrite
Description: Rewrite the legacy payment system to use Stripe
Goals: Replace PayPal integration, Add subscription support, Improve error handling
Strategies: 2 active
Tasks: 3 open, 1 completed
Last activity: 2 hours ago
list_projects — see all tracked projects:
[Tool: projector] list_projects
Projects:
payment-rewrite — 3 open tasks, 2 strategies
auth-hardening — 1 open task, 1 strategy
docs-migration — 5 open tasks, 0 strategies
update_project — modify project goals, description, or other details as the project evolves.
Strategies — Persistent Context¶
Strategies are the most powerful part of Projector. They persist across sessions and are injected into your conversation context via hooks — meaning Amplifier starts every session already knowing your project's priorities and constraints.
set_strategy — define a strategy for a project:
For the payment rewrite, we should always prioritize error handling and never skip webhook signature verification
[Tool: projector] set_strategy
project: "payment-rewrite"
strategy: "error-first"
data: {
"description": "Prioritize robust error handling in all payment code",
"guidelines": [
"Every external API call must have explicit error handling",
"Never skip webhook signature verification",
"Log all payment state transitions for audit"
]
}
✓ Strategy "error-first" set for project "payment-rewrite".
Next time you open a session and work on the payment rewrite, Amplifier will already know about the "error-first" strategy. You don't have to repeat these constraints — they're injected automatically.
list_strategies — see all strategies for a project:
[Tool: projector] list_strategies
project: "payment-rewrite"
Strategies:
error-first — Prioritize robust error handling (active)
test-coverage — Maintain >90% coverage on payment modules (active)
get_strategy — see the full details of a specific strategy, including its guidelines and status.
toggle_strategy — enable or disable a strategy without deleting it:
[Tool: projector] toggle_strategy
project: "payment-rewrite"
strategy: "test-coverage"
✓ Strategy "test-coverage" toggled to inactive.
Toggling is useful when a strategy is temporarily irrelevant — you're in a prototyping phase where coverage doesn't matter yet, but you want the strategy ready for later. Toggle it back on when you're ready.
Tasks — Tracking Work¶
Tasks are individual work items within a project. They're simpler than strategies — no cross-session injection — but they give Amplifier (and you) a clear picture of what needs doing.
add_task — create a new task:
Add a task to implement the Stripe webhook handler
[Tool: projector] add_task
project: "payment-rewrite"
data: {
"title": "Implement Stripe webhook handler",
"description": "Handle payment_intent.succeeded, payment_intent.failed, and charge.refunded events",
"priority": "high"
}
✓ Task added to project "payment-rewrite".
list_tasks — see all tasks in a project:
[Tool: projector] list_tasks
project: "payment-rewrite"
Tasks:
☐ Implement Stripe webhook handler (high)
☐ Migrate customer records to new schema (medium)
☐ Write integration tests for checkout flow (medium)
✓ Set up Stripe API credentials (low) — completed 3 days ago
update_task — change a task's status, priority, or details as work progresses.
Outcomes — Session History¶
After a session of work, outcomes record what happened. This builds a narrative over time — not just what you planned to do, but what you actually accomplished.
log_outcome — record what happened in a session:
[Tool: projector] log_outcome
project: "payment-rewrite"
data: {
"summary": "Implemented webhook handler for payment_intent events",
"details": "Created src/payments/webhooks.py with handlers for succeeded, failed, and refunded events. Added signature verification. All tests passing.",
"tasks_completed": ["Implement Stripe webhook handler"]
}
✓ Outcome logged for project "payment-rewrite".
Status — The Big Picture¶
get_status — cross-project overview of where things stand:
What's the status of everything?
[Tool: projector] get_status
payment-rewrite: 3 tasks open, 1 completed. Last active: today.
auth-hardening: 1 task open, 0 completed. Last active: 3 days ago.
docs-migration: 5 tasks open, 0 completed. Last active: 1 week ago.
You can also filter status queries to focus on a specific project or time range.
How Strategies Flow Across Sessions¶
This is the feature that makes Projector more than a to-do list. Here's the lifecycle:
- You set a strategy in session A: "Always validate webhook signatures."
- The strategy is stored in Projector's persistent data.
- In session B (hours or days later), hooks inject the strategy into the session context.
- Amplifier sees the strategy before processing any request, shaping its approach.
- You update or toggle the strategy as priorities evolve.
This means your second session doesn't start cold. Amplifier already knows the project's constraints. If you ask it to implement a webhook handler, it will include signature verification because the strategy says to — without you having to remind it.
Practical Workflow¶
A typical project lifecycle with Projector:
Setup — create the project, set strategies, add initial tasks:
[Tool: projector] create_project project: "api-redesign"
[Tool: projector] set_strategy strategy: "backwards-compat"
[Tool: projector] set_strategy strategy: "test-coverage"
[Tool: projector] add_task "Design new endpoint schema"
[Tool: projector] add_task "Implement v2 endpoints"
Working sessions — strategies are injected automatically. At session end, log what happened:
[Tool: projector] log_outcome "Completed v2 endpoint design. Found 3 breaking changes."
[Tool: projector] update_task "Design new endpoint schema" → completed
Priorities shift — toggle strategies, add new ones, keep moving:
[Tool: projector] toggle_strategy "backwards-compat" → inactive
[Tool: projector] set_strategy "performance-first"
Tips¶
Set strategies early. The sooner you define project constraints, the sooner every session benefits from them. Don't wait until you've been burned by a missing guideline.
Keep strategies focused. A strategy that says "write good code" is useless. A strategy that says "every database query must use parameterized statements" is actionable. Specific guidelines produce specific results.
Log outcomes consistently. The value of outcomes compounds over time. After ten sessions, you have a narrative of the project's evolution. After one session, you have a note you could have written anywhere.
Use toggle, not delete. When a strategy is temporarily irrelevant, toggle it off. You spent thought on crafting it — don't throw it away. Toggle it back when it matters again.
Check status at the start of sessions. A quick get_status at the beginning of a work session reminds you (and Amplifier) where things stand across all projects.
Tasks are lightweight on purpose. If you need detailed issue tracking with labels, assignees, and milestones, use your team's issue tracker. Projector tasks are for giving Amplifier a quick sense of what's on the plate — not for replacing project management software.