Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,26 @@ Optional:
| `TRIAGEBOT_PORT` | `8080` | Nova HTTP listener |
| `TRIAGEBOT_METRICS_PORT` | `9568` | Prometheus /metrics; set to `""` to disable |
| `TRIAGEBOT_AGENT_MODEL` | per-backend | Override agent model |
| `TRIAGEBOT_POLICY_PATH` | `priv/TRIAGE.md` | Filesystem path to the triage-policy file fed to every agent |

### Triage policy

Every triage run is fed a shared **repository triage context** before the
issue: the contents of a triage-policy file plus the repo's label
taxonomy. The policy teaches the agents how *this* project triages -
what the categories mean, the severity rubric, which labels to use,
escalation rules - and agents follow it where it conflicts with their
built-in defaults.

The policy ships in the release at `priv/TRIAGE.md`; edit that file and
redeploy, or point `TRIAGEBOT_POLICY_PATH` at another file. A missing
file is fine - agents fall back to their built-in defaults. To reload
without a redeploy, call `triagebot_config:refresh_triage_policy()` from
a remote shell.

Each issue also carries its high-signal GitHub fields into the context:
contributor association (e.g. `FIRST_TIME_CONTRIBUTOR`), reaction count,
comment count, milestone, and assignees.

### 3. Local development with PAT

Expand Down Expand Up @@ -141,8 +161,10 @@ That's it.
- Spawn-and-forget async (BEAM process per webhook) so the response
returns 202 immediately while triage runs in the background
- GitHub App or PAT auth (via `gakudan_tickets_github` v0.1.2+)
- Repo-context awareness: classifier + scoper can read repo files;
label_proposer picks from the repo's actual label taxonomy
- Repo-context awareness: a bundled triage policy (`priv/TRIAGE.md`) +
the repo's actual label taxonomy + each issue's contributor/reaction/
milestone signals are fed to every agent; classifier + scoper can also
read repo files on demand
- Prometheus `/metrics` via `gakudan_metrics`
- 20-case CT suite covering the runner helpers, agent callbacks, tool
shapes, and dynamic prompt building
Expand Down
25 changes: 25 additions & 0 deletions doc/.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
404.html
api-reference.html
dist/html-HBZYRXZS.js
dist/html-erlang-7YNYEB7F.css
dist/lato-latin-400-normal-W7754I4D.woff2
dist/lato-latin-700-normal-2XVSBPG4.woff2
dist/lato-latin-ext-400-normal-N27NCBWW.woff2
dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2
dist/remixicon-QPNJX265.woff2
dist/search_data-4AA356A9.js
dist/sidebar_items-463C534A.js
index.html
search.html
triagebot_classifier.html
triagebot_config.html
triagebot_context.html
triagebot_dashboard_auth.html
triagebot_dup_detector.html
triagebot_label_proposer.html
triagebot_repo_context_tool.html
triagebot_runner.html
triagebot_scoper.html
triagebot_search_tool.html
triagebot_summariser.html
triagebot_webhook_controller.html
141 changes: 141 additions & 0 deletions doc/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.39.1">
<meta name="project" content="triagebot v0.1.13">


<meta name="robots" content="noindex">

<title>404 — triagebot v0.1.13</title>

<link rel="stylesheet" href="dist/html-erlang-7YNYEB7F.css" />

<script defer src="dist/sidebar_items-463C534A.js"></script>
<script defer src="docs_config.js"></script>
<script defer src="dist/html-HBZYRXZS.js"></script>

</head>
<body>
<script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.classList.toggle(a,A);var c=sessionStorage.getItem(r);c&&document.body.style.setProperty("--sidebarWidth",`${c}px`);var p=/(Macintosh|iPhone|iPad|iPod)/.test(window.navigator.userAgent);document.documentElement.classList.toggle("apple-os",p);})();
</script>

<div class="body-wrapper">

<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
<i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
</button>

<nav id="sidebar" class="sidebar">

<div class="sidebar-header">
<div class="sidebar-projectInfo">

<div>
<a href="api-reference.html" class="sidebar-projectName" translate="no">
triagebot
</a>
<div class="sidebar-projectVersion" translate="no">
v0.1.13
</div>
</div>
</div>
<ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
</div>
</nav>

<output role="status" id="toast"></output>

<main class="content page-extra" id="main" data-type="extras">
<div id="content" class="content-inner">
<div class="top-search">
<div class="search-settings">
<form class="search-bar" action="search.html">
<label class="search-label">
<span class="sr-only">Search documentation of triagebot</span>
<div class="search-input-wrapper">
<input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
<button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
<i class="ri-close-line ri-lg" title="Cancel search"></i>
</button>
</div>
</label>
</form>
<div class="autocomplete">
</div>
<div class="engine-selector" data-multiple="false">
<button type="button" class="engine-button" aria-label="Select search engine" aria-haspopup="true" aria-expanded="false">
<i class="ri-search-2-line" aria-hidden="true"></i>
<span class="engine-name">Default</span>
<i class="ri-arrow-down-s-line" aria-hidden="true"></i>
</button>
<div class="engine-dropdown" hidden role="menu">

<button type="button"
class="engine-option"
data-engine-url="search.html?q="
role="menuitemradio"
aria-checked="true">
<span class="name">Default</span>
<span class="help">In-browser search</span>
</button>

</div>
</div>
<button class="icon-settings display-settings">
<i class="ri-settings-3-line"></i>
<span class="sr-only">Settings</span>
</button>
</div>
</div>

<h1>
<span>Page not found</span>
</h1>

<p>Sorry, but the page you were trying to get to, does not exist. You
may want to try searching this site using the sidebar

or using our <a href="api-reference.html">API Reference</a> page

to find what you were looking for.</p>
<footer class="footer">
<p>

<span class="line">
<a href="https://hex.pm/packages/triagebot/0.1.13" class="footer-hex-package">Hex Package</a>

<a href="https://preview.hex.pm/preview/triagebot/0.1.13">Hex Preview</a>

</span>

<span class="line">
<button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
Search HexDocs
</button>

<a href="triagebot.epub" title="ePub version">
Download ePub version
</a>

</span>
</p>

<p class="built-using">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.39.1) for the

<a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>

</p>

</footer>
</div>
</main>
</div>

</body>
</html>
Loading
Loading