Skip to main content

Build features

New capabilities taken from a paragraph of intent to a merged change.

New product features​

Dynamic node groups with autoscaling​

Dynamic nodes:

  • User can create "Dynamic node groups" in the same UI where nodes are
  • For each dynamic node group, the user can specify how many on-demand nodes and of what type, how many spot nodes and of what type, and how many worktrees of each assigned project get auto-allocated when a node is launched
  • Autoscaling group(s) automatically provision the desired number of nodes and register them with the system
  • Projects assigned to dynamic nodes automatically get worktrees provisioned on the nodes

Size: TaskStart to finish: 9 h 37 minAgent work: 5 h 6 minQuestions asked: 4Tokens: 309.6MCost, list price: $196.19Lines added / deleted: +8,211 −61Pull requests: 1

featureinfrabackend

Per-user notification preferences with Slack​

Change notifications:

  1. Remove Telegram notifications from nodes.
  2. Each user can add multiple notification methods from the list of available ones. Current choices: Slack. When Slack is selected, the user can enter their Slack user ID. An admin can select an org-wide Slack credential in System / Settings.
  3. The user can specify which notifications they want to receive. Build a nice UI for that. For example, I want a notification when a task is finished and when questions are waiting for me, but I don't want to receive the full questions. It should be flexible but very efficient: very few words, very few clicks.
  4. All of this is the same code for Admin / Users / user / Notifications and Profile / Notifications.

Size: TaskStart to finish: 3 h 27 minAgent work: 3 h 21 minQuestions asked: 5Tokens: 561.0MCost, list price: $376.77Lines added / deleted: +9,589 −1,719Pull requests: 1

featureintegrationfrontend

Server-side auto-save for long tickets​

When writing a very long ticket for an epic, say 3-4 pages, the user would have a heart attack if they accidentally closed the tab and lost everything. So AppName must auto-save the input every X seconds, with X set to a value that avoids putting unnecessary load on the backend.

Change the existing draft saving:

  • Save the draft on the server instead of locally.
  • Auto-save every X seconds. An admin sets X in System / Settings. The starting value is 15.
  • The user sees the task as "New task" in the task list. While it is a draft, the task gets an id, but the LLM has not processed the title yet.
  • Other people don't see it until the user saves it.
  • Auto-save works the same way for new tasks and for edits to existing tasks.

Size: TaskStart to finish: 1 h 34 minAgent work: 1 h 24 minQuestions asked: 7Tokens: 217.1MCost, list price: $127.81Lines added / deleted: +2,848 −2,059Pull requests: 1

featurefrontendbackend

Add an Assigned To field to tasks​

On the New and Edit task forms:

  • Add an Assigned To field to the right of Attach: a lookup dropdown with the names of users who have access to the project. Initial value: the user who creates the task.
  • When an existing task is edited and Assigned To changes, the new assignee gets a brief notification that the task was assigned to them, through the standard notifications path (Profile / Notifications).
  • All notifications about the task go to the Assigned To person.
  • Assigned To can be changed even after the task is completed.

Size: TaskStart to finish: 4 h 23 minAgent work: 1 h 16 minQuestions asked: 4Tokens: 84.2MCost, list price: $127.43Lines added / deleted: +2,848 −335Pull requests: 1

featurefrontendbackend

Add a Comments tab to tasks​

Add comments to tasks:

  • Each task gets a Comments tab
  • Any user who can see the task (tasks:view is enough) can post a comment
  • The author of a comment can edit or delete it
  • Make it extremely space-efficient: use the user's badge (the same one as the owner badge and owner filter in the task list), a dense layout and relative times (reuse the standard)
  • Minimal formatting: word makes it bold
  • Users can mention others with @name (first last)
  • It should look space-efficient on both web and a standard-size phone

(see attached screenshot)

Size: TaskStart to finish: 1 h 50 minAgent work: 1 h 39 minQuestions asked: 9Tokens: 177.6MCost, list price: $104.11Lines added / deleted: +3,807 −66Pull requests: 1

featurefrontendbackendmobile

Make the tax rate a user setting​

In the portfolio report, the Tax Savings field uses a hard-coded 17% tax rate to calculate the possible tax savings on unrealized gains and losses. Instead, store this value on the backend and let the user change it. On the new Settings tab, under General, add a card titled "Tax Settings" with an editable text field called Federal Tax Rate, set to 17% by default. The portfolio report should load this value when it opens, but the user must still be able to override it for a single report.

Size: TaskStart to finish: 2 h 9 minAgent work: 16 minQuestions asked: 5Tokens: 14.5MCost, list price: $10.56

featurefrontendbackend

Add emoji reactions to comments​

Add the ability to like comments or react to them with other emojis.

(see attached screenshot)

Size: TaskStart to finish: 1 h 14 minAgent work: 1 h 12 minQuestions asked: 4Tokens: 47.0MCost, list price: $31.53Lines added / deleted: +1,462 −84Pull requests: 1Attachments: 1

featurefrontendattachmentsrobust

Feature progress circles and drag-and-drop reordering​

For the new project tree view:

  1. Add a progress circle to the left of the title showing the percentage of completed tasks within a feature (e.g. 70%), the same as for epics.
  2. Let the user rearrange the order of features with drag and drop.
  3. Let the user drag a task onto the project name or onto "Other" to remove it from its feature.

(see attached screenshot)

Size: TaskStart to finish: 56 minAgent work: 50 minQuestions asked: 4Tokens: 27.0MCost, list price: $18.03Lines added / deleted: +548 −18Pull requests: 1Attachments: 1

featurefrontendattachments

Build a Translate persona for localization PRs​

Create a persona "Translate" that specializes in translating texts into other languages, following the guidelines, affinities and sentiments, translating jokes as closely as possible and understanding context. Do deep research and equip it with relevant agentic skills and subagents. Just like Coder, Translate produces PRs. Its gate is to make sure all new items are translated, and those that did not change are skipped.

Size: TaskStart to finish: 1 h 36 minAgent work: 1 h 21 minQuestions asked: 6Tokens: 60.3MCost, list price: $36.94Lines added / deleted: +826 −62Pull requests: 1

featurebackend

Build an editor for invitation email templates​

Adding a user sends them an invitation email with a link to log in.

Make a great-looking email template. Create an email template editor. There may be different types of templates, and the operator can select which template of a given type is active.

Size: TaskStart to finish: 1 h 38 minAgent work: 1 h 27 minQuestions asked: 6Tokens: 72.0MCost, list price: $49.45Lines added / deleted: +3,339 −63Pull requests: 1

featurefrontendbackendrobust

Add a playbook picker to task modes​

I created a new playbook (see attached screenshot), but I don't see it in the available modes (screenshot attached).

Add a setting: Enable Playbooks. Initial value (system setting) = Off, can be overridden per org.

When it's On, add a 4th icon for Playbook. Clicking it shows a nice dropdown listing the non-default playbooks. When a playbook is selected, the control is replaced with the playbook's name. The user should then be able to click on it and select another playbook or one of the standard modes. When a standard mode is selected, the control goes back to normal.

(mockup attached)

Size: TaskStart to finish: 1 h 32 minAgent work: 1 h 14 minQuestions asked: 11Tokens: 98.6MCost, list price: $60.35Lines added / deleted: +2,161 −115Pull requests: 1Attachments: 4

featurefrontendattachments

Show a diff when a task description changes​

Whenever a task's description is modified, it's not clear what exactly changed, because the text is trimmed (see attached screenshot).

Instead, let the user click a button and see a git-like comparison view that visualizes the changes. For example: (see attached screenshot)

Size: TaskStart to finish: 49 minAgent work: 36 minQuestions asked: 5Tokens: 18.3MCost, list price: $12.77Lines added / deleted: +706 −2Pull requests: 1Attachments: 3

featurefrontendattachments

Add Imported and Live Transactions Sub-Tabs​

On the Transactions page, add two sub-tabs: Imported and Live. The Imported tab should hold the page that the Transactions page shows now. The Live tab should show transactions directly from the custodian's API, with these filters:

  1. By date range
  2. By account number
  3. By transaction type (fetch this list in real time from the custodian's API too)

Size: TaskStart to finish: 2 h 54 minAgent work: 2 h 29 minQuestions asked: 5Tokens: 17.5MCost, list price: $13.01Lines added / deleted: +1,021 −3Pull requests: 1

featurefrontenddatarobust

Integrations with outside services​

Session statistics with AWS Athena​

Implement AWS Athena over session transcripts. Keep it simple at first.

We want to see statistics over a period:

  • How much time was spent on initial exploration, analysis, coding, verification, running the full test gate until it goes green, designing the report and reporting the outcome.
  • Purpose: understand what consumes the most time and resources, and optimize the agents. What else could we look at?

Size: TaskStart to finish: 8 h 47 minAgent work: 8 h 26 minQuestions asked: 4Tokens: 520.8MCost, list price: $374.22Lines added / deleted: +12,570 −81Pull requests: 1

featureinfradata

Webhook to replace n8n form workflow​

Create a webhook to completely replace the n8n workflow that processes reCAPTCHA and accepts Contact Us and Join Waitlist submissions on the website.com website.

Size: TaskStart to finish: 3 h 37 minAgent work: 2 h 12 minQuestions asked: 11Tokens: 48.7MCost, list price: $36.19Lines added / deleted: +2,020 −3Pull requests: 1

featureintegrationbackendrobust

Set up email sending for the agent​

Set up AWS SES (or should we use the Gmail API?) to send and receive emails on behalf of agent@website.com.

Email becomes another notification option.

Out of scope: processing received emails (just the plumbing for now).

Size: TaskStart to finish: 3 h 9 minAgent work: 2 h 14 minQuestions asked: 11Tokens: 127.3MCost, list price: $80.96Lines added / deleted: +3,847 −681Pull requests: 1

featureintegrationinfrarobust

Give the support assistant simple RAG​

Let's implement simple RAG for the support agent so it can answer product questions intelligently. What do you recommend we feed it: the code, the docstrings or the docs?

Size: TaskStart to finish: 1 h 53 minAgent work: 1 h 46 minQuestions asked: 10Tokens: 94.6MCost, list price: $135.81Lines added / deleted: +2,949 −55Pull requests: 1

featurebackendintegrationrobust

Automation and background jobs​

Mount shared storage on every new node automatically​

Every new node we create (cloud, self-hosted or dynamic) must have the shared EFS file system configured and mounted without human intervention.

Size: TaskStart to finish: 3 h 19 minAgent work: 2 h 16 minQuestions asked: 6Tokens: 124.8MCost, list price: $87.32Lines added / deleted: +2,377 −156Pull requests: 1

featureinfrarobust

Report node disk usage and network speed​

Collect disk space usage and approximate current network speed from the nodes. Report them to the control plane and show them to the user. Follow exactly the same pattern as CPU and RAM, and reuse that code.

Size: TaskStart to finish: 1 h 30 minAgent work: 1 h 24 minQuestions asked: 5Tokens: 37.7MCost, list price: $25.15Lines added / deleted: +963 −118Pull requests: 1

featureinfrafrontendrobust