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
- Install StagBane from the Atlassian Marketplace.
- Open Confluence → Settings → StagBane.
- On first run, choose your audited spaces (see below). Until you do, StagBane audits nothing- the queue starts empty on purpose.
- 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-evergreenis 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-evergreenpages 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-reviewis 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
- Audit your most authoritative spaces- the ones Rovo and search answer from.
- 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.
- 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).
- 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.
- Use Request Owner Review for pages whose owner is the right person to judge them- you don't have to review everything yourself.
- Apply
pha-evergreento 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.
The broken-link count looks wrong
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.