From Prompt to Progress: A Goal-Tracking Agent for the Enterprise
TL;DR — I built a single AI agent that turns natural-language requests into well-structured tickets and generates weekly executive reports from the same source of truth. Result: cleaner data in, sharper reports out, less manual overhead.
The Problem
Engineering teams lose hours every week to two predictable workflows:
- Ticket intake — translating informal asks into properly linked, labeled, and scoped tickets.
- Weekly reporting — manually stitching status updates across goals, epics, and owners.
The cost isn't just time. It's inconsistency — missing labels, orphan tickets, duplicate work, and reports that don't roll up cleanly.
The Solution
A single agent. Two skills. One source of truth.
What Shipped
CAPABILITY | OUTCOME |
Unified agent | One entry point — no more guessing which tool to use |
NL ticket creation | Plain prompts → summary, description, epic link, labels, AC |
Duplicate detection | Searches open tickets in the same epic before creating |
Label inheritance | New stories auto-inherit parent epic metadata |
Default acceptance criteria | Every ticket ships review-ready |
Team user registry | Config-driven name resolution ("Alex" → auser1) |
Idempotent reporting | Reruns update the same page — no duplicate reports |
Tiered auth | Browser session → service credential → token override |
Example Flow
User:
Create a ticket for the K8s activity rollout and assign it to Jordan.
Agent:
Found 2 open tickets in the same epic that may already cover this:
- TICKET-123 — Rollout planning — In Progress — Alex
- TICKET-456 — Migration readiness — To Do — Priya
Add to an existing ticket, or create a new one?
User: Create new.
Agent: ✅ Created TICKET-789 with parent epic, inherited labels (Goal_1234, Parent_Goal_1200), generated Acceptance Criteria, and assignee.
Why It Matters
A ticket is only as useful as its metadata. Manual intake produces fragmented labels, broken epic linkage, and reports that require human cleanup. By moving goal mapping, duplicate detection, metadata inheritance, and reporting behind one interface, we get:
- Better input quality — every ticket is goal-linked and report-ready on creation
- Better output quality — weekly reports roll up cleanly because the source data is clean
- Lower friction — natural language in, structured tracking out
Lessons Learned
- Design for the user, not the implementation. Ticket creation and reporting are different internally — but from the user's view, both are "goal tracking." One agent.
- Metadata is the product. Labels, parent links, and Acceptance Criteria determine whether reporting works six weeks later.
- Don't blindly create. A ticket agent that prevents tickets when appropriate is more valuable than one that just creates them faster.
- Config beats code. Team membership changes periodically — registry files keep the agent maintainable without redeploys.
The Takeaway
The win isn't automation. It's consistency.
Better intake → cleaner tracking → sharper reporting. Automatically.

Comments