Verdikta backlog and issue workflow¶
This guide is the canonical operating procedure for humans and automated agents creating, selecting, implementing, or maintaining work across the Verdikta GitHub organization.
The objective is deliberately simple:
Maintain one organization-wide view that clearly shows the highest-value actionable work across all Verdikta repositories.
Use the Verdikta Master Backlog as the shared command center. Repository issues remain the canonical record of the work itself; the Project supplies organization-wide workflow and priority metadata. Do not create a duplicate issue merely to make work appear in the Project.
Where work belongs¶
Cross-repository initiatives¶
Large outcomes involving more than one repository use a parent issue in verdikta-roadmap with the initiative label.
The roadmap repository is a home for initiative containers, not ordinary implementation tasks. Add the repository-owned implementation issues as native GitHub sub-issues of the initiative so the Roadmap view can report progress.
Actionable issues¶
Implementation work belongs in the repository where the change will be made. If an outcome requires changes in three repositories, create one initiative and three repository-owned child issues rather than a single vague task or three copies of the same issue.
| Repository | Owns work involving |
|---|---|
verdikta-agents | Agent framework, runtime, web/API surfaces, identity, wallets, policies, and agent contracts |
verdikta-applications | Reference applications, bounty escrow, bounty API/UI, dashboards, and example integrations |
verdikta-arbiter | Arbiter AI node, external adapter, Chainlink node, operator contract, installer, and operator tooling |
verdikta-dispatcher | Aggregation, reputation, oracle selection, protocol settlement, and dispatcher contracts |
verdikta-common | Shared packages, ClassID data, schemas, manifest handling, validation, and reusable utilities |
verdikta-site | Public website, product positioning, public content, RAG material, and conversion flows |
verdikta-docs | Cross-cutting documentation site and documentation-system changes |
verdikta-roadmap | Cross-repository parent initiatives only |
Component-specific documentation normally stays with the component repository. Use verdikta-docs when the documentation change is cross-cutting or changes the unified documentation system itself.
Pull requests¶
Pull requests implement repository issues.
- Link every substantive PR to its issue.
- Use
Closes #123for an issue in the same repository orCloses verdikta/repository#123across repositories when appropriate. - A merged PR does not make an issue complete unless its acceptance criteria and validation requirements have been satisfied.
- Close the issue and set the Project item to Done only when the outcome has been accepted.
Project fields¶
Keep the schema small. Do not invent a new field until repeated use reveals a specific operational question that the existing fields cannot answer.
Status: execution state¶
| Value | Meaning |
|---|---|
Inbox | Newly captured and not yet processed |
Todo | Accepted work that has not started |
In Progress | Actively being worked on |
Review | Implementation or deliverable awaits review |
Done | Completed and accepted |
Readiness: suitability to work¶
| Value | Meaning |
|---|---|
Needs Triage | Missing scope, priority, repository, acceptance criteria, or another important decision |
Ready | Sufficiently clear and unblocked |
Blocked | Cannot proceed because of a dependency, decision, access issue, or external condition |
Icebox | Retained but intentionally outside near-term consideration |
Status and Readiness answer different questions. An issue can correctly be Status = In Progress and Readiness = Blocked. Record the blocker in the issue body or a current comment; do not create a new Readiness value for each blocking reason.
Priority: Verdikta-wide importance¶
Priority is an organization-level GitHub issue field and is therefore stored on the issue and shared across organization Projects.
| Value | Meaning |
|---|---|
P0 Critical | Outage, security issue, funds at risk, severe production problem, or immediate launch blocker |
P1 High | Important to the current strategic objective and should be addressed soon |
P2 Normal | Valuable planned work |
P3 Low | Useful but not currently important |
Icebox | Intentionally deferred |
Priority is global. A P1 documentation or website issue may rank above a P2 protocol issue when it creates more value for Verdikta.
Size: rough effort¶
Use XS, S, M, L, or XL. Size is a rough comparison aid, not a commitment or calendar forecast.
Area: functional domain¶
Use one of Protocol, Arbiters, Applications, Agents, Documentation, Website, Growth, BizDev, or Operations. Area describes the kind of work; Repository describes where it is implemented.
Fields not used¶
Do not add or populate Start date, Target date, Owner Type, Bounty Status, Strategic Bet, Impact, Urgency, Confidence, Score, or External Visibility unless Verdikta explicitly changes this operating model.
- GitHub Assignee is the canonical owner.
- Verdikta Bounties owns bounty lifecycle state; do not reproduce it in GitHub.
- Dates are used only when explicitly requested for a real operational need.
Project views¶
| View | Use it for |
|---|---|
| Master Backlog | Complete cross-repository inventory and detailed filtering |
| Top Priorities | The global answer to “What should Verdikta work on next?”; implementation issues, not roadmap containers |
| Execution Board | Active work grouped by Status |
| My Tasks | Work assigned to the signed-in GitHub user |
| Agent Queue | Clear, unblocked Readiness = Ready and Status = Todo work |
| Blocked | Work requiring a decision, dependency, access change, or other intervention |
| By Area | Distribution of work across functional domains |
| Roadmap | Initiatives and native sub-issue progress |
An item appearing in Agent Queue is not automatic authorization for autonomous execution. Inspect the issue, repository instructions, permissions, risk, and acceptance criteria first.
Required issue quality¶
Do not mark an issue Ready until it has objective completion and validation conditions. Use this structure:
## Goal
Describe the outcome that should exist when this issue is complete.
## Context
Explain why the work matters and link relevant issues, documentation,
discussions, contracts, or prior pull requests.
## Acceptance criteria
- [ ] Clear, testable condition
- [ ] Clear, testable condition
- [ ] Clear, testable condition
## Validation
Describe how a human or agent can verify completion.
## Scope
In scope:
- ...
Out of scope:
- ...
Requests such as “improve onboarding,” “fix documentation,” or “make consensus better” remain Needs Triage until the expected outcome is testable.
Intake and triage¶
When capturing new work:
- Search the target repository, the organization, and the Master Backlog for an existing issue, including differently worded or closed work.
- Decide whether the item is a cross-repository initiative, a repository-owned task, a duplicate, rejected work, or Icebox material.
- Create the issue in the implementation repository. Create a roadmap parent only for a genuinely cross-repository outcome.
- Add the issue to the Master Backlog with
Status = InboxandReadiness = Needs Triage. - Add Goal, Context, Acceptance criteria, Validation, and Scope.
- Set global Priority, Size, and Area. Confirm the repository is correct.
- Add the native parent/sub-issue relationship when applicable.
- Set
Readiness = Readyonly when the work can proceed without guessing. - Set
Status = Todowhen Verdikta accepts the work into the active backlog.
Do not use an issue in verdikta-roadmap as a substitute for a missing implementation issue.
Execution workflow¶
Before starting work, a human or agent must:
- Read the repository-root
AGENTS.mdand other repository instructions. - Read the complete issue, its parent initiative, linked dependencies, and relevant prior PRs or discussions.
- Confirm the issue is the canonical, non-duplicate record for the work.
- Confirm
Readiness = Ready, or explicitly resolve the triage/blocking gap. - Confirm the requested action and permissions make the work safe to execute; Agent Queue membership alone is not enough.
- Assign the implementing GitHub identity when practical and set
Status = In Progresswhen work actually begins.
During work:
- Keep Scope and acceptance criteria current when evidence changes the plan.
- Link important decisions and implementation PRs from the issue.
- If blocked, set
Readiness = Blocked, keep the truthful execution Status, and record the blocker, owner, and removal condition. - When the blocker is removed, return Readiness to Ready.
- Do not silently expand an issue into materially different work; create or propose the appropriate sibling issue.
When implementation or a deliverable awaits review, set Status = Review. When the accepted outcome and validation are complete, set Status = Done and close the underlying issue when appropriate.
Maintaining backlog quality¶
Anyone editing issues or Project metadata must preserve these rules:
- Search before creating; never duplicate work across repositories.
- Keep actionable work in its implementation repository.
- Use native parent/sub-issue relationships for meaningful traceability.
- Preserve the distinction between Status and Readiness.
- Rank value across Verdikta, not merely within the local repository.
- Record blocking reasons in the issue, not in new schema values.
- Do not assign calendar dates, duplicate bounty state, or add ownership fields.
- Do not close an issue solely because a PR merged.
- Summarize and obtain approval before bulk issue or Project mutations.
Useful inspection commands include:
gh project list --owner verdikta
gh project item-list 1 --owner verdikta --limit 200
gh issue list --repo verdikta/REPOSITORY --state open
gh search issues "SEARCH TERMS" --owner verdikta
The GitHub web interface, connected GitHub applications, GraphQL/REST APIs, or the GitHub CLI may be used. Verify write operations by reading the resulting issue, native relationship, and Project fields back from GitHub.