StagBane- User Guide

This guide takes a Confluence admin from installation to everyday use. It covers both of StagBane's surfaces:

  • The review queue- an admin-only page in Confluence settings that ranks audited pages by staleness.
  • The Rovo agent (Page Health Auditor)- an on-demand, read-only second opinion in Rovo chat.

If you only read one page of these docs, read this one.

New here? The Quick start gets you to your first finding in about 15 minutes. This guide is the complete reference.


1. Before you start

Assumptions

  • You are a Confluence site admin. The review queue is gated to site admins; everyone else sees a notice instead of the queue. This is by design- the queue can show the titles and owners of restricted pages (see Privacy & data).
  • You are on a Confluence Standard (or higher) plan.
  • To use the Rovo agent, your site has Rovo enabled and you have Rovo credits. The review queue itself does not require Rovo.

What StagBane will and won't touch

StagBane never archives, deletes, moves, or rewrites a page. The only changes it can make to your content are: adding or removing its own labels (verified-current, needs-review, pha-evergreen), recording a review date, and posting a single comment that asks a page owner to review their page. Everything else is read-only.

2. First-time setup

  1. Install StagBane from the Atlassian Marketplace.
  2. Open Confluence → Settings → StagBane.
  3. On first run, choose your audited spaces (see below). Until you do, StagBane audits nothing- the queue starts empty on purpose.
  4. A scan runs automatically once a day. You can begin reviewing as soon as the first scan of your audited spaces completes.

The status line at the top of the queue tells you when the last full scan finished and whether a scan is currently running.

Choosing audited spaces

Audited spaces are the spaces StagBane scans and ranks. Choose the spaces whose accuracy actually matters- the ones people and Rovo treat as authoritative: team handbooks, policies, runbooks, product docs.

Leave out personal spaces, scratch/archive spaces, and anything you don't expect to be current. Including them just fills the queue with pages nobody intends to maintain.

Important: audited spaces define the boundary for two signals. "Orphaned" and "broken internal links" are both judged only within your audited spaces. A link that crosses into a space you didn't audit is invisible to StagBane- it is neither counted nor flagged. If pages look wrongly orphaned or wrongly broken, the usual fix is to audit the space on the other end of the link. See Troubleshooting.

What the first scan does

The first time StagBane scans a newly audited space, it reads every page once to build a link index- the map of which audited page links to which. This is the only time a full read happens for that space.

What daily and incremental scans do

After the first scan, the daily scan is incremental: it only re-reads pages whose version changed since the last scan. Unchanged pages keep their existing link data. This keeps scans fast and keeps reads to a minimum.

What this means: a page's signals can change between scans without the page itself being edited- for example, a page becomes "orphaned" because the only page that linked to it was deleted. StagBane reconciles these relationships on each scan, so bands stay correct even when a page wasn't touched.

Opting a page out: pha-evergreen

Some pages are meant to be old- a frozen policy from 2019, an archive index, a "company values" page that hasn't changed because it shouldn't. Apply the pha-evergreen label to any such page and StagBane stops banding it and moves it to the Excluded view.

What this does not mean: pha-evergreen is not "ignore this page forever as a chore." It's a deliberate statement that the page is intentionally stable. Use it to remove genuine, permanent false positives- not to silence a page you simply haven't gotten to yet (use Needs review for that).


3. Reading the queue

Every audited page is sorted into one of four bands. The queue lists Critical first, then Stale, Watch, and Healthy, and within each band the oldest pages come first.

Bands are not a weighted score. They come from an ordered list of rules, and the highest-precedence rule that matches sets the band. Every row still tells you the rule that placed it there, and it lists every signal that fired, not just the winning one- so "Why is this page here?" has a short answer and the full picture.

The five signals

Every band StagBane computes on its own comes from these five signals. Understanding them is most of understanding the queue. (One band isn't automatic: a page owner can reply Stale to a review request, and that human verdict overrides the signals- rule R0 below.)

Signal Values What it means
Age fresh (< 180 days), aging (180–365 days), old (> 365 days) Time since the page was last edited.
Owner ok / missing or inactive "Missing or inactive" means the page has no owner, the owner can't be resolved, or the owner's account is deactivated.
Review current / expired / never Based on the verified-current label and its date. Current = verified within the review window (default 1 year). Expired = verified, but longer ago than the window. Never = no review on record. The window is an admin setting (Settings → review window, 30–1095 days).
Orphan yes / no "Yes" means no other audited page links to this page. A supporting signal only- it never escalates a band on its own.
Broken links a count Number of internal links on the page that point at audited pages which no longer exist.

What "broken links" counts- and doesn't. Only internal links within your audited spaces are checked. StagBane never checks external (web) links, and never checks links into spaces you didn't audit. A "broken link" always means: this audited page links to another audited page that has been deleted.

The four bands

Band Read it as Typical reason
Critical Review this first. No owner and old and unvouched- or broken links with no owner to fix them (even on a fresh page). Nothing is vouching for it.
Stale Likely out of date. A review lapsed, or it's over a year old and never reviewed, or it links to deleted pages.
Watch Worth keeping an eye on. Verified but now has a broken link, or aging and carrying one supporting risk signal.
Healthy No risk signal fired. Recently reviewed and intact, or simply nothing concerning.

The band rules

This is the complete, ordered rule set. StagBane checks R0 first; the first rule that matches sets the band. Separately, the row lists every signal that fired, so the band gives you the headline and the signals give you the whole story.

Rule When it fires Band Why
R0 A reviewer replied Stale to a review request Stale A human read the page and marked it stale; this overrides every automatic signal until someone marks it Verified Current.
R1 Review current and no broken links Healthy A human verified it within the last year and nothing has broken since.
R2 Review current and ≥ 1 broken link Watch It was verified, but links inside it have since broken.
R3 No owner and review not current and over a year old Critical Nobody owns it, no current review vouches for it, and it hasn't been touched in over a year.
CC1 Stale by age or review and ≥ 1 broken link Critical It is past its review window or over a year unreviewed, and it cites internal pages that no longer exist.
CC2 Stale by age or review and no owner Critical It is past its review window or over a year unreviewed, and has no owner to fix it.
CC3 ≥ 1 broken link and no owner Critical It cites internal pages that no longer exist and has no owner to fix them- this needs no age signal, so even a fresh page qualifies.
R4 Review expired Stale Its review lapsed- current once, and the window has passed.
R5 Over a year old and never reviewed Stale Over a year old and never reviewed by anyone.
R6 ≥ 1 broken link Stale It cites internal pages that no longer exist.
R7 Aging and (no owner or orphaned or broken link) Watch Approaching a year old and carrying a supporting risk signal.
R8 Anything else Healthy No risk signal fires.
RQ (applied after the rules above) an open review request left unanswered past the escalation window (a setting, default 7 days), on a page that is otherwise Stale or Watch Critical A review was requested and the owner has not responded within the escalation window- an unresponsive owner is treated as effectively absent.

Band vs. signals. The band is set by the highest-precedence rule, but the row lists every signal that fired- a page banded Stale also shows its broken-link count, its missing owner, and so on. A few of those combinations are serious enough to escalate to Critical on their own: a stale page that also has broken links (CC1) or also has no owner (CC2), and- with no age requirement- any page that has broken links and no owner (CC3). One more escalation is request-driven: an already at-risk page (Stale or Watch) whose review request goes unanswered past the escalation window (a setting, default 7 days) is bumped to Critical (RQ)- an unresponsive owner is treated as effectively absent. The band is still a precedence decision, never a raw tally of issues- only these named, one-sentence-defensible combinations escalate.

Worked examples

Critical (R3). "Onboarding- Legacy VPN Setup." Last edited 2 years ago. Its author left the company, so the owner is inactive. No one has ever marked it Verified Current. → No owner + no current review + old ⇒ Critical. This is exactly the page Rovo should not be answering from.

Critical (CC1). "API Gateway Config." Edited 18 months ago (old), has an active owner, never formally reviewed, and links to three internal pages that were since deleted. → Stale by age + broken links ⇒ Critical. Old-and-unreviewed alone would be Stale; the broken links stacked on top escalate it. The row lists both reasons.

Critical (CC3). "New Integration Spec." Created last week (fresh), but its author left before assigning an owner, and it already links to two pages deleted during the move. → Broken links + no owner ⇒ Critical, with no age signal. A fresh page that already points at deleted content and has nobody to fix it is as urgent as an old one- this is the case the age-gated rules used to miss.

Critical (RQ). "Vendor Onboarding Checklist." Stale because a link inside it broke. You asked its owner to review it 9 days ago, and they haven't responded- no reply, no edit, no Verified Current. → With the escalation window at its default 7 days, the unanswered request bumps it from Stale to Critical: the owner has effectively gone quiet, so it needs attention now. (A "Stale" reply is a response- that path bands the page Stale via R0, not RQ.)

Stale (R4). "Incident Response Runbook." Edited 8 months ago (so: aging, not old). It was marked Verified Current 14 months ago, but that review has now lapsed. → Review expired ⇒ Stale. The age alone wouldn't flag it; the lapsed review does.

Stale (R6). "Release Process." Edited last month, has an active owner, never formally reviewed. It links to two internal pages that were since deleted. → ≥ 1 broken link ⇒ Stale. Fresh and owned, but it now points at pages that don't exist.

Watch (R2). "Data Classification Policy." Marked Verified Current 3 months ago, but one page it links to was archived last week, creating a broken internal link. → Review current + a broken link ⇒ Watch. The verification still counts; the broken link is worth noticing.

Watch (R7). "Team Charter." Edited 9 months ago (aging). It's not linked from any other audited page (orphaned), but has an owner and intact links. → Aging + a supporting signal (orphaned) ⇒ Watch. Note that orphan alone never makes a band- it only contributes here because the page is also aging.

Healthy (R1). "Expense Policy." Marked Verified Current last month, no broken links. → Healthy. Verified recently and intact.

Healthy (R8). "Q2 Roadmap." Edited last week, has an owner, no broken links, linked from the team home page. Never formally reviewed, but nothing concerning. → Nothing fired ⇒ Healthy. "Healthy" means "no risk signal," not "guaranteed accurate"- which is exactly the gap the Rovo agent and Worth a closer look exist to cover.

Filtering and sorting

Use the filters to narrow the queue:

  • Space- searchable multi-select; type to find a space by its name or key, then tick the ones you care about right now.
  • Band- multi-select Critical / Stale / Watch / Healthy.
  • Review- filter by review state (current / expired / never), or by the Needs review worklist (see below).
  • Excluded view- switch to see the pha-evergreen pages you've opted out. Excluded pages stay hidden from the normal bands unless you explicitly open this view.
  • Links- narrow to pages that have at least one broken internal link.
  • Dismissed- by default, pages whose every flagged reason you've dismissed are hidden (see Dismiss a reason, below). Switch to Only dismissed to review what you've set aside, or All to see everything together.

The table is paginated at 25 rows per page. Sort order is fixed: Critical → Stale → Watch → Healthy, oldest first within each band, so the most urgent pages are always at the top.

Group by owner. The Group by owner toggle clusters the queue by page owner, with a header and band counts for each owner and an Unassigned bucket (pages with no owner, or a departed one) at the bottom- so "who owns the most stale pages" and "what nobody owns" are visible at a glance.

Use the Columns picker in the header to show or hide the optional columns and keep the table focused on what you care about. The page title and the row actions always stay; your choice is saved for the whole site.


4. Queue actions

Each row has up to four actions. None of them are destructive.

Needs review

Tags the page with the needs-review label as a personal triage marker. No one is notified. The button toggles- click again to remove it. Use the Review → Needs review filter to pull up everything you've flagged.

Important: needs-review is a worklist marker only. It is never an input to the band rules, so flagging a page can't make it look stale. It's there to help you organize your own review pass, nothing more.

Mark Current

Adds the verified-current label and records today as the page's review date. On the next scan the page re-bands with a current review- usually toward Healthy.

The button toggles. Once a page is verified it reads ✓ Current; click it again to clear the review date, and the page re-bands on its other signals.

Use this when you've actually checked the page. Mark Current is the human judgment the deterministic rules can't make. It's also how you clear a page off the Worth a closer look list after confirming it still holds up.

Audit

Opens the Page Health Auditor (the Rovo agent) in Rovo chat, pre-aimed at this page. Use it when the metadata looks fine but you want a read on whether the content is still accurate. This spends Rovo credits and only appears where Rovo is available. See section 6.

Request Owner Review

Posts a templated footer comment on the page that @mentions the page's owner and asks them to review it. This uses one slot of your daily Request Budget (see below).

The comment asks the owner to reply Verified or Stale right there in the thread, so they can resolve it without ever opening the queue (see How the owner responds below).

The button is disabled, with the reason shown in the row, when:

You see It means
"no reviewable owner" The page has no owner, or the owner's account is missing/inactive- there's no one to @mention.
"review requested ⟨date⟩, pending" A review request is already open on this page. StagBane won't send a second one.
Budget exhausted (shows remaining budget + reset time) You've used all of today's review requests. The row shows when the next slot frees up.

How the owner responds

The owner can resolve the request by replying to the comment- no queue access needed. StagBane reads the leading keyword of the reply (so "Verified, thanks!" counts, but "this isn't verified yet" does not) and answers in the same thread:

The owner replies What StagBane does
Verified Marks the page Verified Current (records today as its review date, clears the stale flag) and resolves the request. Replies to confirm.
Stale Flags the page as Stale with a human verdict that overrides the automatic signals (the row reads "a reviewer marked this page stale"). Replies to confirm. The request stays open until the page is edited or marked Verified Current.
both words (e.g. "verified to be stale") Asks them to reply again with just one keyword- it can't tell which they mean.

Only the page's current owner can resolve from the comment thread. If anyone else replies, StagBane points them to the owner (or asks them to take ownership) rather than acting. Admins resolve any page from the queue with Mark Current as before.

A request is resolved automatically when the page gets a new version (someone edits it) or is marked Verified Current- whether that happens in the queue or through a Verified reply- after the request was posted. There is no time-out and no re-requesting while a request is open- one request per staleness episode, by design.

What this prevents: without these rules, a daily scan could re-flag the same stale pages every day and @mention the same owners over and over. The "one open request per page" rule and the daily budget together make a notification storm structurally impossible.

Request Budget- in practice

The Request Budget is one of StagBane's handful of settings (alongside your audited spaces, the review window, the request-escalation window, and which columns to show). It's the maximum number of Request Owner Review comments that can be sent per rolling 24 hours, per site.

  • Default: 25. Adjustable from 1 to 100.
  • The queue always shows your remaining budget.
  • Raising it above 25 shows a warning first, because the whole point of the budget is to keep review requests from becoming spam.

A practical way to think about it: if you do a big review pass and want to nudge 40 owners in one sitting, you'll hit the default cap of 25 and the rest will wait for slots to free up over the next day. That's intended. If you genuinely need more throughput for a one-time cleanup, raise the budget temporarily, then lower it again.

Worth a closer look

At the top of the queue, StagBane surfaces a short list of pages that are banded Healthy or Watch by the rules, but whose titles suggest they might be dated. It looks for signals a timestamp can't see- a past year in the title (e.g. "2023", "Q3 2024"), or words like draft, legacy, deprecated, obsolete, WIP, old, retired, temp, archived, copy of, do not use.

This list never judges freshness itself. It only nominates pages that are worth a human or agent read- the metadata says "fine," but the title smells off.

Examples. "2022 Pricing- DRAFT" is fresh (edited recently) and owned, so the rules band it Healthy- but the title screams that it's a stale draft. "Legacy API Migration Plan" might be Watch on age alone, but "Legacy" is the real tell. Both are exactly the kind of page the deterministic rules can't catch.

How to clear an item from the list: click Audit to have the Rovo agent read the actual content. If it holds up, click Mark Current- that clears it (it returns in about a year, when the review lapses). If the page is intentionally stable, apply pha-evergreen and it drops off for good.

Dismiss a reason

Sometimes a page is flagged for a reason you've already considered and accepted- "yes, this runbook is old, but it's still correct and we're not touching it." Click Dismiss… on the row to acknowledge a specific reason so it stops cluttering the queue. You can add an optional note (recorded for the audit log), and you can dismiss several reasons on the same page.

  • A dismissed reason comes back on its own when the page is edited, or when that reason's specifics change (a different set of broken links, an owner departing)- so nothing stays hidden once the situation actually moves.
  • Dismiss every flagged reason on a page and the page drops out of the queue into the Dismissed filter. The page's band underneath is unchanged, and a dismissal is never shown to readers, never changes the trust badge, and never affects the Rovo-readiness score or the agent.
  • You can't dismiss a human "Stale" verdict (someone explicitly said it's stale) or an active overdue review request (resolve that through the request, not by hiding it).
  • Restore brings a reason back at any time. Every dismiss and restore is recorded in the Suppression audit log in Settings (who, when, which reason, and your note).

Per-space review cadence

The global review window (how long a Verified Current review stays current) can be overridden per space in Settings → Review policy → Per-space review cadence. A fast-moving policy space can be reviewed every 90 days while a stable reference space stays at a year.

Set them in bulk: pick one or more spaces from the searchable Spaces list, type a window (30-1095 days), and click Apply- it sets all the selected spaces at once. Spaces that currently differ from the global window appear as chips at the top (e.g. "Engineering · 90d"); click a chip's × to remove that override, or select spaces and click Use global to clear several. Any change re-ranks pages immediately.

Weekly digest

The Weekly digest panel shows an admin-facing "docs we would not trust" view- the Critical and Stale pages (minus anything excluded or dismissed), grouped by owner, with new-since-last-week and resolved-since-last-week counts. A snapshot is taken automatically each week; you can also Generate digest now. It is in-product only- StagBane sends no email and posts nothing to your pages.


5. A suggested first-week workflow

  1. Audit your most authoritative spaces- the ones Rovo and search answer from.
  2. Start with Critical. These pages have no one vouching for them and are over a year old. Decide page by page: archive it yourself in Confluence, reassign an owner, or, if it's still good, Mark Current.
  3. Work the Stale band next, using the row reason to triage: a broken-link page (R6) needs different attention than a never-reviewed one (R5).
  4. Skim Worth a closer look. Run Audit on a few; the agent will tell you which ones are genuinely out of date behind a healthy-looking timestamp.
  5. Use Request Owner Review for pages whose owner is the right person to judge them- you don't have to review everything yourself.
  6. Apply pha-evergreen to the handful of pages that are old on purpose, so they stop reappearing.

After the first pass, the daily scan keeps the queue current and the work becomes maintenance rather than cleanup.


6. The Rovo agent (Page Health Auditor)

In Rovo chat, mention @Page Health Auditor. It reads and judges pages as you (it can only see pages you can already access, and never one you can't), grounds its answers in the queue, and- on your confirmation- can take the queue's actions for you. This section is the overview; the Rovo agent guide is the full reference.

What it can do

1. Audit one page. Judges whether a single page's content still looks accurate.

"@Page Health Auditor is the onboarding guide at /wiki/.../pages/12345 still accurate?" "Audit our incident response runbook."

2. Compare two pages. Judges whether two specific pages contradict each other.

"Do the US and EU data retention policies contradict each other?" "Compare the old and new release process pages."

3. Find overlapping pages. Given one page, searches Confluence for candidate pages on the same topic that might overlap or conflict- then offers to compare them.

"What other pages might overlap with our expense policy?"

Important: search results are candidates, not verdicts. When the agent finds overlapping pages, it's pointing at pages worth comparing- it has not ruled that they conflict. A ruling only comes from explicitly comparing two pages you've confirmed.

How it grounds its answers

Every verdict:

  • States a plain judgment- likely current, likely stale, contradiction found, no contradiction found, or cannot judge.
  • Cites specific evidence- the actual text or metadata behind the judgment, not a vague impression.
  • Names the page version it read- e.g. "judged at version 14." A verdict without a version is invalid by the agent's own rules.

When the page is already in your review queue, the agent also cites the queue's band and reason as context, then gives its own content read on top. Its most useful move is explaining where the two diverge:

  • The queue bands a page Healthy on a fresh timestamp, but the agent reads the content and sees it describes a system you retired- so it tells you the substance is out of date.
  • The queue bands a page Stale only because one internal link broke, but the agent reads the content, finds it still correct, and says so.

If a page isn't in the index yet (an unaudited space, or not yet scanned), the agent says so and gives a content-only read.

What it can do for you (on your confirmation)

The agent can trigger the same non-destructive actions as the queue- never anything that edits or removes your content. It always says what it will do and waits for your explicit yes, and the system checks your permissions:

  • Mark a page Verified Current, or Mark it Stale- the page owner or a site admin.
  • Request the owner review a page, or set the needs-review label- site admins.

"Mark page 12345 verified current." (it confirms, then does it) "Ask the owner of the onboarding guide to review it."

Asking which pages are stale (site admins)

Ask "which pages are stale?" and, if you're a site admin, the agent returns the queue's ranked list (the most stale first, each with its band and reason). If you're not an admin it points you to the queue. The agent never assembles a site-wide list on its own.

Auditing several pages

Ask to "audit them all" and the agent audits up to five pages per reply- a short cited verdict for each- then offers to continue. Prefer one at a time? Say so, and it does one page per reply.

What it cannot do

  • It cannot edit, archive, rewrite, or delete your page content- ever. The only changes it makes are the queue's non-destructive actions above, and only on your confirmation.
  • It does not set bands directly. Bands stay deterministic: when you ask it to mark a page current or stale, the rule engine re-bands the page- the agent doesn't choose the band.
  • Its verdicts are chat-only and never stored. Nothing it judges is written back to the queue or saved anywhere.
  • A non-admin cannot get a site-wide list from it, and no one can make it read a page they can't already open.
  • Each question uses your Rovo credits, like any Rovo agent.

7. Troubleshooting

A page looks orphaned, but I know it's linked

"Orphaned" means no other audited page links to it. The link you're thinking of is probably coming from a space you didn't audit. StagBane can only see links within audited spaces. Fix: audit the space that contains the linking page, or- if the page is meant to stand alone- apply pha-evergreen.

Broken links count only internal links to audited pages that no longer exist. Things that are not counted, and may explain the difference:

  • Links to external websites- never checked.
  • Links into unaudited spaces- never checked.
  • Links to pages that were moved or renamed but still exist- these resolve fine and aren't broken.

Fix: if a "broken" link points into a space you care about, audit that space so the target page becomes known. The count corrects on the next scan.

The agent disagrees with the queue

That's the agent doing its job, not a bug. The queue bands on metadata (age, ownership, links, review date); the agent reads the actual content. The two are supposed to diverge on the hard cases:

  • A Healthy-banded page the agent flags as outdated (fresh timestamp, stale content).
  • A Stale-banded page the agent vouches for (only a broken link tripped the rule).

Use the agent to adjudicate, then act- either from chat (ask it to "mark this current" or "mark it stale"; it confirms first) or in the queue (Mark Current, reassign). Archiving a page is still done in Confluence. Either way the band stays deterministic: the action re-bands the page through the rules- the agent never sets a band by fiat.

A page shouldn't be reviewed- it's evergreen

If a page is old on purpose (a frozen policy, an archive index) and keeps appearing in the queue, apply the pha-evergreen label. StagBane stops banding it and moves it to the Excluded view. Use the Excluded view to confirm it landed there.

The Request Owner Review button is disabled

Check the reason shown in the row:

  • "no reviewable owner"- the page has no resolvable, active owner to @mention. Assign an owner in Confluence, then re-scan.
  • "review requested ⟨date⟩, pending"- a request is already open. It resolves when the page is edited or marked Verified Current; you can't stack a second one.
  • Budget exhausted- you've used today's Request Budget. The row shows when a slot frees up, or you can raise the budget (with a warning) in settings.

A scan looks stuck or incomplete

Check the status line at the top of the queue- it shows the last completed scan and whether one is running. Scans are incremental and self-heal on the next daily run, so a partial scan generally resolves itself within a day. If a scan stays stuck across multiple days, contact support (see below).


Support

Questions, or a scan that won't recover: support@<your-domain>. For exactly what StagBane reads, stores, and removes, see Privacy & data.