Issue Management

Issue management

Stood Flows treats every finding as a candidate for an issue — something the team has to act on, comment on, close, or come back to. Every panel supports issue creation through a right-click menu on a row or cell, and every issue carries an anchor that pins it to the exact thing it's about.

Where those issues are stored follows the folder's sharing method, set in its Settings — you pick how the folder is shared, and the issues go with it. See Sharing and roles. The Issues tab looks and behaves the same in all three cases.

An issue moves through three steps

Every issue is in one of three states, and the folder dashboard reports all three plus the total:

Anything the app cannot read as qualified or closed counts as open, so an issue is never lost by having an unexpected value in it.

With GitHub as the sharing method, the middle step comes from your repository's labels, so qualification stays where your team already does it.

Sharing: GitHub — issues live in GitHub

All issue operations go through the gh CLI:

The repository is taken from the folder's Settings, where you can type owner/name. Leave it blank and Stood Flows detects it from the folder's own git remote (gh repo view), which works when the folder is itself a git repo — the usual case, since with GitHub sharing you keep the folder in sync by pulling and pushing it yourself.

You'll need the gh CLI installed and authenticated (gh auth login). The CLI status (green / red / browse) is in Global Settings, same place as sf.

GitHub issues are real GitHub issues — labels, milestones, assignees all work. They show up in your repo's normal Issues tab. You can act on them on GitHub directly and Stood Flows picks up the changes on the next fetch.

Sharing: No sharing — issues live in a local file

Issues are stored in a file inside the folder:

workspaces/<alias>/graphs/<slug>/issues.csv

Same operations — create, edit, comment, close, reopen — all done locally. The file has a stable header so it's safe to open in a spreadsheet.

This is the offline-by-default mode. Use it when:

Sharing: S3 — issues travel with the analysis

Issues are kept in the same file as above, but it is published and pulled along with the rest of the analysis, and merged rather than overwritten in both directions.

This matters because issues are the one thing everybody writes. An Admin publishing a fresh analysis doesn't wipe out the issues a Contributor raised in the meantime, and a Contributor pulling the latest analysis doesn't lose their own. If two people gave an issue the same number while working apart, one of them is renumbered so neither is lost.

Contributors also get a Publish issues button, which sends their additions, comments and closures back on their own — without republishing an analysis they didn't produce. See Team sharing (S3).

Anchors — what they are, why they exist

An anchor is a tiny block of metadata embedded in the issue body. It looks like:

<!-- stood-anchor:graph=acme-prod-q3,rt=01234000000xyz,col=score,obj=Opportunity,name=New Business -->

The five fields are:

Anchors are HTML comments — they're invisible in the rendered issue body on GitHub and ignored when reading the file in a spreadsheet. But Stood Flows reads them and uses them to:

  1. Filter — the Issues tab shows a count next to each KPI/DML/IO/Apex node that has open issues anchored to it.

  2. Navigate — clicking View on an issue jumps to the right tab, expands the right tree node, applies the right filter, and highlights the row.

  3. Survive refreshes — record-type IDs and column names stay stable across versions, so an issue anchored to Opportunity.NewBusiness.complexity last quarter is still findable after a refresh that adds new RTs.

You don't write the anchor yourself. Every "Create issue" entry point in the app constructs one for you and pre-fills the body with a sensible title and a description that includes the metric value at creation time.

How to create an issue

Three entry points:

  1. Right-click any KPI cell → "Create issue". Anchor records the (object, RT, column) for that cell.

  2. Right-click a row in DML / Licensing / I/O / Apex → "Create issue". Anchor records the drill path.

  3. Issues tab → New issue (with the form). Used for issues that aren't tied to a specific cell.

The pre-filled body is usually enough — review, tag with labels if needed, save.

Following anchors back

Every issue row in the Issues tab has a View button. Clicking it:

This is the muscle behind "every finding is verifiable". You don't lose the link between a comment from three months ago and the data that caused it.

Practical patterns

Triage flow

  1. Run a fresh Refresh + analyses.

  2. For each high-complexity, low-volume row in the KPI table: right-click → "Create issue" with label retire-candidate.

  3. For each integration in the DML integration bucket you don't recognise: right-click → "Create issue" with label unknown-integration.

  4. For each callout destination with errors >20%: right-click → "Create issue" with label broken-callout.

  5. Hand the resulting Issues tab to the team — every row is grounded in a specific number on a specific version of the data.

Reconciliation flow

After a release:

  1. Refresh.

  2. Open the Issues tab and walk down. For each open issue, click View and confirm the metric has improved (or moved as expected).

  3. Close issues that are resolved; comment on issues that have moved differently than expected.

The anchors mean the metric is always one click away — no copying URLs, no remembering which RT was which.

Changing the sharing method later

Switching between No sharing and S3 keeps your issues: it's the same file, which simply starts (or stops) travelling with the analysis.

Switching to or from GitHub moves you between two genuinely different systems, and Stood Flows does not copy issues across. Turning GitHub on leaves the local file untouched and starts writing new issues to the repo; turning it off leaves the GitHub issues where they are, readable on GitHub, and goes back to the local file. Copy anything you want to keep across by hand before you switch.

Published with Nuclino