Skip to main content

Architecture solution design

DevWorkWire is a local Python CLI. Its current composition root provides a Jira adapter behind the WorkItemProvider port. People and terminal-capable agents invoke the same direct commands; a portable skill supplies agent workflow guidance. This page describes shipped behavior. See ADR-011 for the interface decision.

System context​

There is no current MCP server, network listener, or server database. The agent's host controls its shell access. The CLI cannot inspect the user's conversation with the agent.

Architectural approach​

The current code uses domain entities, a provider port, a Jira adapter, and a composition root. The CLI invokes the provider through that root. Folder preview and import logic are local application functions, with a JSON resume file in the source folder. Earlier documents proposed a shared WorkItemService, SQLite preview plans, and two front doors; those components are not implemented in the current baseline.

Component design​

dwire --format json returns one result object on stdout for a direct command. Logs and diagnostics use stderr. The interactive menu remains text. The interface contract lists current commands, outcomes, and write behavior.

Data flow​

A folder preview parses epic.md and optional stories.md, validates their structure, and compares them with the local resume record. It makes no Jira write. An import repeats the local preview under a folder lock, requires an interactive confirmation or --yes, then creates missing issues and records keys. Re-runs skip recorded items. They do not update changed uploaded items.

Direct create commands write one issue immediately and return its key. A Jira response with an uncertain outcome during import leaves a pending local record for manual resolution before retrying.

Security considerations​

A user-approved agent task authorizes the agent's writes. The skill instructs agents to inspect folder previews and stop on uncertain or partial outcomes, but these instructions are not a CLI-enforced approval gate. Treat source Markdown and Jira text returned to an agent as untrusted data. See Security Architecture.

Scalability considerations​

The current CLI operates on one configured Jira project and one source folder per import. The provider's list operations page through Jira results. No multi-user server or distributed state is present.

Future work​

Search, updates, richer queries, progress reporting, and other providers remain planned. MCP is deferred pending a specific client requirement. Each future write operation needs an explicit retry and recovery design.