Work items, fields, and types
Every record Disco Parrot keeps, the fields on each one, the seven plan types, and the bug values for severity, priority, and resolution. The field-by-field reference behind the work model.
This is the field-level map of the work model: every record type Disco Parrot keeps, the fields it carries, and the exact values an enum field can take. The guides tell you what a record is for; this page tells you exactly what it holds. When you are building a filtered view that keys off a precise field, configuring a workflow, or deciding which type a plan should be, this is where you confirm the name and the shape rather than infer them from a form.
The records and how they relate are covered in depth on the SDLC work model page and in each entity's own guide under plan and track work. This page is the flat reference those guides point back to. The lifecycle a record moves through, its statuses and the transitions between them, lives on the statuses and status machines page; here you will find the status field named, with its values cross-linked there.
How records relate
The shape comes before the field tables, because the tables make more sense once you can see how the records point at one another. The work hangs off a short spine: a portfolio links projects, a project holds initiatives, an initiative decomposes into plans. Bugs and test cases hang off the same initiatives, a bug optionally off a plan as well, and a sprint cuts across the whole thing as a delivery window that plans and bugs commit to. A goal sits to the side and draws its progress up from the initiatives beneath it rather than carrying a number of its own. The tables below name every field on each of these records; the map above is how they point at one another. Two links are worth holding onto as you read: a bug requires an initiative but a plan is optional, and a goal's connection to its initiatives is a rollup, not a structural parent.
Fields every record carries
A handful of fields are common to every work item, so they are worth settling once here rather than repeating in each table below.
| Field | Meaning |
|---|---|
| Title or name | The record's heading. Initiatives, plans, and bugs use a title; projects, portfolios, sprints, and goals use a name. |
| Body or description | The long-form content. Initiatives and plans carry a markdown body that is the spec itself; bugs carry a body; projects, portfolios, and goals carry a shorter description. |
| Status | Where the record sits in its lifecycle. Each value is listed on the statuses reference. |
| Owner | A display label for the person accountable for the record. This is a name shown on the card, distinct from the structural assignee field that holds a user identity. |
| Created and updated | Server-set timestamps, plus the identity of who last changed the record. You do not set these; the platform does. |
| Version | Every initiative, plan, skill, and agent instruction keeps a version history of non-destructive snapshots. |
Two distinctions recur across the tables below, so settle them once here. Owner is a label, assignee is an identity. The owner field is a freeform display name; the assignee field, where an entity has one, holds the actual user it resolves to. Deleting is soft. Every record carries a deleted marker rather than being erased, so a removed record leaves the active set without leaving the history.
Assignee behaves differently across two records, which matters when you build a filter. On a plan it is a stored user identity; on a bug it is a display name. That is why a bug filter on assignee matches the name you see on the card, while a plan filter on assignee resolves to a user.
Projects
A project is the container a team's work lives in. It binds to a repository and sets the default sandbox profile that planning chats inherit.
| Field | Type | Meaning |
|---|---|---|
| Name | text | The project name. |
| Description | text | Free-text description. |
| Status | active, paused, completed, archived | The project's lifecycle state. |
| Owner | text | Display label for the accountable person. |
| Start date, target date | date | Optional schedule dates. |
| Color, icon | text | Display accents in the rail and on cards. |
| Repository | text | The GitHub repository backing the project, in org/name form. Optional, since a strategy-only project can carry no repository. |
| Default branch | text | The repository's default branch, such as main. |
| Default sandbox profile | reference | The sandbox profile a chat inherits when its initiative belongs to this project and names none of its own. |
Project membership is a separate set of records rather than a field on the project, so a person's role on a project is tracked per membership. See projects.
Portfolios
A portfolio is the rollup container above projects, for looking across several at once. It links to projects and carries a privacy switch.
| Field | Type | Meaning |
|---|---|---|
| Name | text | The portfolio name. |
| Description | text | Free-text description. |
| Privacy | public, private | Whether the whole workspace can see it or only the teams linked to it. Defaults to private. |
| Status | active, archived | The portfolio's lifecycle state. |
| Color, icon | text | Display accents. |
| Projects | references | The projects this portfolio rolls up, linked many-to-many. |
Access to a portfolio runs through the teams linked to it, not through a member list on the portfolio itself. See portfolios and teams.
Initiatives
An initiative is the captured intent at the top of the work model. It holds the spec that decomposes into plans.
| Field | Type | Meaning |
|---|---|---|
| Title | text | The initiative title. |
| Status | planning, approved, in-progress, blocked, done, cancelled | Lifecycle state. Transitions are on the statuses reference. |
| Summary | text | A short one-line description. |
| Body | markdown | The spec itself, versioned, with larger bodies stored transparently. |
| Owner | text | Display label for the accountable person. |
| Start date, target date | date | Roadmap schedule. |
| Progress | number | A completion percentage from 0 to 100. |
| Clarifications | list | Open questions the agent raises before it commits to the spec, each with the answer a person gave and the spec revision the answer was folded into. |
| Depends on | references | Other initiatives this one depends on, the edges of the roadmap dependency graph. |
| Project | reference | The project this initiative belongs to. |
| Default sandbox profile | reference | The sandbox profile a chat on this initiative inherits, overriding the project's default. |
| Integration links | references | Links to the matching items in a connected work tracker such as Azure DevOps. |
| Approved by, approved at | text, date | Who approved the initiative and when. |
An initiative does not store its own effort estimate. Its effort is the sum of its plans' estimates, rolled up rather than entered. See initiatives.
The spec and its clarifications
The body field is not a description that sits beside the work. It is the spec the plans decompose from, which is why it is markdown, versioned, and the one initiative field with real weight behind it. When the agent reads a spec and finds a question the spec does not answer, it does not guess. It raises a clarification: an open question recorded on the initiative, waiting for a person.
A clarification is a small loop, not a comment. It carries the question, the answer a person gave, the date that answer landed, and the spec revision the answer was folded into. That last part is what makes it more than a thread. Once the answer is incorporated, the clarification points at the exact version of the spec that now reflects it, so a reader can see not just that a question was asked and answered but where in the spec the answer changed the text. Plans carry the same loop, each clarification naming the revision its answer entered.
Plans
A plan is a reviewable piece an initiative decomposes into. It carries a type, an estimate, implementation steps, and, once shipped, a link to its pull request.
| Field | Type | Meaning |
|---|---|---|
| Title | text | The plan title. |
| Status | draft, in-progress, complete, blocked, cancelled | Lifecycle state. See the statuses reference. |
| Body | markdown | The plan spec, versioned. |
| Plan type | enum | What kind of work the plan is. The seven types are listed below. |
| Owner | text | Display label for the accountable person. |
| Assignee | reference | The user doing the work, held as a stable identity. |
| Approved by | text | Who approved the plan, shown once it is set. |
| Steps | list | Implementation steps, each with a name, a description, a status, and acceptance criteria. |
| Clarifications | list | Questions and answers that shaped the plan, each with the spec revision its answer entered. |
| Estimate (hours) | number | Estimated effort in hours, from 0 to 1000. |
| Estimate (points) | number | Estimated effort in story points, from 0 to 1000. |
| Actual (hours) | number | Attested time spent, always in hours. |
| Initiative | reference | The parent initiative, required. |
| Sprint | reference | The sprint this plan is committed to, if any. |
| Linked test cases | references | Test cases linked to the plan, populated when the plan type is verification. |
| Depends on, feature, unblocks, branch | text | Freeform fields a team uses to note a dependency, the related feature, what the plan unblocks, and the git branch. |
| Integration links | references | Links to the matching items in a connected work tracker such as Azure DevOps. |
| Pull request | fields | Once a ship opens a PR, the plan carries its number, URL, branch, open and merged timestamps, and PR status (draft, open, merged, closed). The PR status is a separate axis from the plan's own lifecycle status. |
Both the hours estimate and the points estimate are stored on every plan. Which one your team works in is a team setting, covered under estimates and point scales. See plans.
Bugs
A bug is an issue that lives alongside plans. It rolls up to an initiative and can join a sprint. Bugs carry the most classification fields of any record in the work model.
| Field | Type | Meaning |
|---|---|---|
| Title | text | The bug title. |
| Body | markdown | The full report. |
| Severity | critical, high, medium, low | How bad the defect is. Defaults to medium. |
| Priority | urgent, high, medium, low | How soon it should be addressed, set at triage. |
| Status | enum | Where the bug sits in its workflow. The states and transitions are on the statuses reference. |
| Resolution | enum | Why the bug was settled, listed below. |
| Root cause | enum | What was behind the defect, set at resolution, listed below. |
| Source | manual, chat, test-execution, automated | How the bug originated. |
| Labels | tags | Free tags. |
| Component | text | The affected component. |
| Environment | text | Where the bug was found. |
| Found in, fixed in | text | The version, branch, or commit where the bug appeared and where it was fixed. |
| Estimate and actual | number | Hours and points estimates, and attested hours, the same shape as a plan. |
| Initiative | reference | The parent initiative, required. |
| Plan | reference | The plan this bug belongs to, if any. A bug can stand on its own under an initiative. |
| Reporter | reference | The person who filed it. |
| Assignee | text | The display name of the person working it. |
| Sprint | reference | The sprint this bug is committed to, if any. |
| Relations | links | Typed links to other bugs, test cases, steps, or commits, such as duplicate-of, blocks, regressed-from, or fixed-by. |
| Integration links | references | Links to the matching items in a connected work tracker such as Azure DevOps. |
See bugs. The classification value sets follow.
A bug carries its classification on four axes that answer four different questions, and they are set at different moments. Severity and priority are set at triage and say how bad the defect is and how soon to address it. Resolution and root cause are set when the bug closes and say why it was settled and what was behind it. The value sets for each follow.
Bug severity and priority
| Severity | Priority |
|---|---|
critical | urgent |
high | high |
medium | medium |
low | low |
Severity describes the defect; priority describes the schedule. They move independently, so a low-severity bug can carry an urgent priority and the reverse.
Bug resolution
When a bug leaves the open states, its resolution records why.
| Value | Meaning |
|---|---|
fixed | The defect was corrected. |
duplicate | The bug repeats one already filed. |
wont-fix | A deliberate decision not to address it. |
cannot-reproduce | The behavior could not be reproduced. |
by-design | The behavior is intended. |
obsolete | The bug no longer applies. |
Moving a bug to its canceled state requires a resolution, so a canceled bug always records why it was settled.
Bug root cause
Root cause is set when a bug is resolved and answers what was behind it.
| Value | What it means |
|---|---|
code-defect | A mistake in the code. |
design-flaw | A flaw in the design. |
missing-requirement | A requirement that was missed. |
configuration | A configuration problem. |
environment | Something in the environment it ran in. |
third-party | A third-party dependency. |
regression | A change that broke something that worked. |
data-issue | Bad or unexpected data. |
performance | A performance problem. |
Sprints
A sprint is a team-scoped delivery window that groups plans and bugs.
| Field | Type | Meaning |
|---|---|---|
| Name | text | The sprint name. |
| Team | reference | The team that owns the sprint. A sprint belongs to exactly one team. |
| Goal | text | The sprint goal. |
| Status | planned, active, completed | The sprint's lifecycle state. |
| Start date, end date | date | The sprint window. |
| Days off | date ranges | Team-wide holidays in the window that reduce everyone's capacity. |
Sprint membership lives on the items, not on the sprint: a plan or a bug carries the sprint it is committed to. Capacity is tracked per member in its own set of records, holding each person's hours or points budget for the sprint, their personal days off, and whether they count toward the total. See sprints.
Goals and key results
A goal is an outcome the work supports, and it is the one record on this page that carries no workflow and no effort of its own. Its key results are the measurable targets, and they tie back to the initiatives that move them. Read the two tables together: the goal holds the framing and the health label, the key results hold the numbers, and the numbers climb from the initiatives a key result links to. That is why the goal splits into two tables: the framing and health on one, the moving numbers on the other.
| Goal field | Type | Meaning |
|---|---|---|
| Title | text | The goal title. |
| Description | text | Free-text description. |
| Owner | text | Display label for the accountable person. |
| Status | on_track, at_risk, off_track, achieved, cancelled | A health label you or the agent set. A goal has no workflow; this is a read on its health, not a lifecycle gate. |
| Time period | quarter, half, annual, custom | The window the goal covers. |
| Project | reference | The project the goal belongs to, or none for a workspace-level goal. |
| Parent goal | reference | A parent goal, for a goal tree. |
| Key result field | Type | Meaning |
|---|---|---|
| Title, description, owner | text | The key result and who owns it. |
| Metric type | percentage, number, currency, boolean | How the target is measured. |
| Unit | text | A unit label for number metrics. |
| Initial, current, target | number | The range the key result moves across. |
| Progress mode | auto, manual | Whether the current value updates from linked initiatives or by hand. |
| Links | references | The initiatives a key result draws progress from. A key result can also reference a portfolio as supporting context, which does not move its number. |
A goal's completion is a rollup over its key results, derived rather than set. An automatic key result moves as its linked initiatives progress: a numeric metric tracks their weighted progress, and a boolean metric turns true once every linked initiative is done. See goals and OKRs.
Test cases
A test case captures what should be true and the status of checking it.
| Field | Type | Meaning |
|---|---|---|
| Title | text | The test case title. |
| Description | text | What the test covers. |
| Status | draft, active, passing, failing, obsolete | The authoring state and the last outcome. The passing and failing states are recorded by exercising the test, not by editing it. See the statuses reference. |
| Priority | critical, high, medium, low | How important the test is. |
| Steps | list | Ordered steps, each with an action and an expected result. |
| Initiative | reference | The parent initiative, required. |
| Plan | reference | The plan the test verifies, if any. |
See test cases.
Documents
The word document covers two surfaces, and they are worth keeping apart.
The first is the Document Library, the files and pages you attach to your work. A library document records where it came from and how it is stored.
| Field | Type | Meaning |
|---|---|---|
| Name | text | The document name. |
| Source | local, google-drive, onedrive, external | Whether it was uploaded, imported from a document provider, or referenced externally. |
| Storage | blob, reference | Whether the platform holds the bytes or points at the provider's file. |
| MIME type, size | text, number | The file type and size. |
| Visibility | private, tenant | Whether only you or the whole workspace can see it. |
| Description, tags | text | Notes and free tags. |
The second is repository documentation, the per-repository wiki the platform keeps. A wiki page is addressed by a slug and a scope (global, or a single repository) and holds markdown content. This is the surface documentation health reviews keep current. See documents and repository documentation and wiki.
Plan types
Every plan carries a type, and the type tells you what the plan is for. There are seven.
| Type | What it is for |
|---|---|
implementation | Building the change. The default kind of plan. |
design | Working out an approach or a design before building. |
spec | Writing or refining a specification. |
review | Reviewing work, code, or a decision. |
research | Investigating an open question. |
chore | Maintenance and housekeeping that still needs tracking. |
verification | Confirming the work holds, the kind of plan that links test cases. |
The type is a way to sort and reason about the work rather than a switch that changes the fields a plan carries; every plan type has the same shape. See plans.
Estimates and point scales
A plan or a bug can carry an estimate, and the platform stores it two ways at once: an hours estimate and a points estimate, each from 0 to 1000. Which one your team actually works in is a team setting, the primary estimate unit, set to either hours or points. Attested time spent is always recorded in hours, whatever the team estimates in.
When a team estimates in points, a point scale fixes the values a points estimate can take, so a team's estimates stay consistent.
| Scale | Allowed values |
|---|---|
off | Any value from 0 to 1000. |
fibonacci | 1, 2, 3, 5, 8, 13, 20, 40, 100. |
linear | 1 through 10. |
The scale guides the points field and the agent's suggestions toward those values. It is set per team, alongside the primary estimate unit. See teams for where a team chooses its unit and scale.
How estimates and progress roll up
Two numbers in the work model are never typed where you read them. They climb. An initiative shows an effort figure, but it stores none of its own: the figure is the sum of the estimates on its plans. A goal shows progress, but it sets none of its own: the progress is drawn up from the initiatives its key results link to. Both are computed at the moment you look, from the leaves, which is why neither field is editable on the record that displays it.
The estimate roll is the straightforward one. An estimate lives on a plan, in the unit the team works in, and bugs carry one too. An initiative's effort is its plans' estimates added together, so resizing one plan changes the initiative total without anyone touching the initiative. Because the estimate is stored both ways on every leaf, the roll holds whether the team reads it in hours or in points.
The progress roll has one more turn in it, because a goal does not link to initiatives directly. A goal carries key results, and a key result links to initiatives. An automatic key result moves as those initiatives advance: a numeric metric tracks their weighted progress, and a boolean metric turns true only once every linked initiative is done. The goal's own completion is then a roll over its key results. So the path runs initiative progress, up into the key result, up into the goal, three records deep, with a person entering a number at none of the three.
This is the direction underneath the field tables. Effort and progress both flow up the spine from the work that actually moves, never down from a figure someone declared at the top, which is why an initiative total and a goal's health stay honest as the leaves change without a reconciliation step to keep them true.
One filter, start to finish
An example of the page doing its job. A release manager wants every bug that is a real regression still in flight: high or critical severity, a root cause of regression, and not yet closed. Each of those is a value set on this page. Severity is critical or high from the severity table. Root cause is regression from the root-cause table. And still in flight is any status that is not closed or canceled, from the bug status machine. They build the view with those exact strings, and because the grid matches the same values this page lists, the filter catches every bug that qualifies and nothing that does not. The page is where the filter's vocabulary comes from.
Why the work model is shaped this way
The shape of the model rewards a close look. The work hangs off a small spine, portfolio to project to initiative to plan, with bugs and test cases hanging off the same initiatives and sprints cutting across as a delivery overlay. Estimates live on the leaves and climb; a goal's progress is drawn up from the initiatives beneath it rather than typed in, the model the rollup section above draws in full. Once you see that, the fields stop reading as a long list and start reading as a structure with a direction to it.
That structure is only useful if the reference matches the product field for field, which is the rule behind the whole section: every field and every value here is read from the product as it behaves, not from an older intention. That matters most where two things look alike and are not. Owner is a label and assignee is an identity. Severity describes a defect and priority describes a schedule. A bug's status is where it sits in the workflow and its resolution is why it closed, two different fields that happen to share a couple of words. A reference earns its keep by drawing those lines cleanly, because a filter or a workflow built on the wrong field fails quietly.
For a power user, this page is the source for a precise filter or a custom view. When you key a view off severity, plan type, or sprint, the value sets here are the exact strings the grid matches.
For an administrator, the status fields named here lead straight to the statuses and status machines page, where the transitions you can customize live. The fields a record carries are also the fields a workflow's board and grid can show.
For an engineer, the relationship fields are the map: which record points at which, what is required, and what rolls up. The estimate fields and the point scale are where a team's sizing convention is set.
For a prospect, this is the evidence the model is real. An agent can only plan, build, and verify work if there is a structured work model underneath it, and this page is that model named in full, not a diagram on a marketing page.