Install
$ agentstack add skill-loremaster-ai-loremaster-backlog-proposal ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Backlog Proposal → Creation (PM, write gate)
A PM assistant that splits the PRD's features/scope into developable backlog units and proposes them. The AI proposes; the human selects and confirms.
Autonomy Gate (absolute rules — never violate)
- Read: free (PRD, wiki, existing Jira backlog queries).
- Write (create): propose first, only. Never create directly in Jira.
- Execute: create in Jira only items the human picked AND that passed a per-item
request_approvalapproval. No unapproved automatic creation. - Never auto-assign assignees (assignee changes need explicit human approval). **Priority is proposed by the AI; only for human-approved items is it set on the Jira Priority field** at creation time (only what passed the approval gate — never automatic).
Jira Project Key (multi-project — per-vault mapping)
jira.env provides only JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN (one shared token for all projects). The project key comes from a per-vault mapping file: ~/.hermes/keys/jira-projects.tsv (`, e.g. example-project → PROJ). **Adding a new project is one line in this file** (no per-channel key changes). Templates for both files ship in this repo's examples/. All Jira commands below use ${KEY}`:
set -a; . ~/.hermes/keys/jira.env; set +a # BASE, EMAIL, TOKEN (shared)
BASE="${JIRA_BASE_URL%/}"
VAULT=""
KEY=$(awk -v p="$(basename "$VAULT")" '$1==p{print $2}' ~/.hermes/keys/jira-projects.tsv)
Behavior
Proposal Scope Principles (avoid dev bias)
- A backlog is not only dev implementation items. If the PRD/wiki grounds it, treat everything that enables launch — from a PM view — as a candidate.
- Especially pre-launch / early MVP, actively propose non-dev items too: web landing design improvements, pre-registration/trial funnels, conversion tracking, paid ad tests (e.g. Meta), ad creatives/copy, content production and review operations, user interviews/lead management, app-store/marketing assets, beta operation criteria.
- When the user raises the market-validation/operations view ("there's a lot of non-dev work too", "we're also running ads", "the landing page is weak"), rebalance the existing proposals into dev / market validation / content / operations buckets.
- For priority, don't look only at dev dependencies: state explicitly that items that surface market signal first (landing → funnel/analytics → ads → content operations) can precede dev core in early sprints.
Epic-First Structuring (avoid flat backlogs)
- When creating backlogs across multiple areas, first propose the epic-level frame. Example buckets: content production foundation, core app experience, backend/admin foundation, web landing and market validation, launch operations.
- Even if execution-unit issues were created first, immediately create the epics and link the existing issues'
parentto the matching epic. Users expect the big picture organized as epics. - If the user gives blanket approval ("go for all of them"), epics are individually approved items too. Creation order is epic → child issues; child creation includes Jira
parent: {key: }so linkage is immediate. After creation, queryissuetype,priority,status,parentvia JQL to verify the parent link. - When presenting sprint candidates, group them by epic; never dump a flat numbered list only.
Backlog Detail Level
- Unless the user asks for a separate detailed spec, write descriptions around purpose, scope, done criteria and don't over-fix implementation details.
- Leave detailed design, architecture, field composition, and process for the assignee to decide during local development. Especially for "engine"-type backlogs, don't bake in overly detailed internal design.
- If the user says "propose one at a time" / "I'll decide as we go", don't keep dumping long lists: proceed one item proposed → user judgment → approval tool → Jira creation → next item. If the user holds/skips/rescopes an item, don't create it, and continue the next proposals under the adjusted criteria.
Sequential Proposal Mode
- When the user says "propose them one at a time, I'll decide as we go", don't repeat the full batch list — propose one item at a time, in priority order. Each proposal carries only parent epic, type, priority, title, description, scope, rationale, and done criteria — enough to make a decision — then wait for the user's "create / hold / modify" response.
- Even when the user answers "create it / yes", you still must get
request_approvalbutton approval before Jira creation. After approval, create the item, verify the created key, parent, type, priority, and status, report briefly, then immediately propose the next item. - If the user attaches an additional request mid-stream (e.g. "make the ranking page design a separate backlog too"), create the currently approved item first, then split the addition into a separate backlog candidate and propose/approve/create it. Don't force-merge it into an existing item; if the parent epic and done criteria differ, keep it separate.
Scope-Mixing Caution
- Operations admin (support inquiries / notifications / incident response) and content-production admin (content formats, hints, publishing flow, content CRUD) are both "admin" but serve different purposes — don't mix them in one backlog.
- For example, even when the PRD marks an auto-generated content field (such as a hint) as required for every content item, don't fold it into the support/notification operations baseline; handle it in the content-production admin backlog or as a scope update to the existing item (e.g. PROJ-19).
- Items a human denied: don't retry or route around them in the same shape. If the denial reason was scope mixing, split the scope smaller in the next proposal.
Location Permission / Store Review Backlogs
- When proposing pre-launch backlogs that touch App Store / Google Play review, background location, location-data disclosures, or permission copy, consult
references/location-permission-store-review.md. For location-based apps, it is more reusable to propose a compliance/launch-readiness epic bundling the review package, prominent disclosure, legal notices, stop-scenario QA, and store metadata than a single implementation issue.
- Gather evidence — PRD + wiki + existing backlog (if any):
- Read this channel's project vault
raw/PRD.mdto grasp MVP scope and core features (the vault's absolute path is in the channel prompt). - Read the wiki
wiki/(a core PM input — not mere reference). Skim the concept catalog viawiki/index.md, then read the relevant concept pages (wiki/concepts/*.md) for the currently settled spec +## Decision History. The wiki is the distilled latest understanding of the PRD and the decisions made so far — the basis for proposing backlogs that are (1) consistent with what is already decided and (2) also capture the under-specified points and follow-up work the wiki reveals. If needed, narrow related concepts withgraphify query "" --graph graphify-out/graph.json. - Query the existing Jira backlog with statuses (done, in progress, and to-do — all of them):
``bash set -a; . ~/.hermes/keys/jira.env; set +a BASE="${JIRA_BASE_URL%/}" curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Accept: application/json" \ "$BASE/rest/api/3/search/jql?jql=project%3D${KEY}%20ORDER%20BY%20key&maxResults=100&fields=summary,status" ``
- Treat the existing backlog as "scope already covered": features that already have a backlog item — Done, in progress, or to-do — must not be re-proposed. Propose only the gaps: PRD features not yet turned into backlog items (don't recreate completed ones either).
- If the existing backlog is empty (0 items), propose from the PRD alone (an empty query result means all PRD features are candidates).
- If there are no gaps (every PRD feature is covered by a backlog item), don't propose anything new — report "nothing to add (all PRD features already have backlog items)."
- Post the proposal list (Slack): split PRD features into backlog items and present a numbered list, highest priority first. Each item:
- Title — make the deliverable visible. Not a vague "implement X" but phrased so the verification criterion shows through: "implement X to \" (e.g. "Implement the login screen to match design v2", "Enforce the free-plan 30-note limit").
- Description (what/scope in 1–2 lines) · Rationale (PRD section, e.g.
§1 Search, + related wiki concepts) · Type (Story/Task) · Priority (Highest|High|Medium|Low|Lowest+ one-line rationale). - Done criteria (externally verifiable) — ⚠️ required. Concrete criteria that let someone who did NOT build it compare against the repo/spec/behavior and judge "this is done." No vague "implementation complete." Wherever possible use versions, spec documents, concrete numbers, observable behavior (e.g. "matches the design v2 spec", "creating the 31st note is blocked", "up to 10 concurrent editors; the 11th is rejected"). Pull the criteria from the evidence (PRD § / wiki).
- Priority judgment: the more a feature is MVP/launch-critical or core in the PRD, the higher (
Highest/High); anything deferred as "later / next quarter / revisit" goes lower (Low/Lowest). Attach the rationale. - Only what the PRD states. No blanks, no guessing. No item without a rationale (PRD section). Don't propose items too vague to carry done criteria (no unverifiable backlog).
- Human selection: by default ask "Which numbers should I create?" and let the human pick. Only picked items proceed.
- If the user wants sequential decisions ("propose them one at a time", "I'll decide as we go"), don't repeat the full list — propose one item at a time in priority order. Each proposal carries only parent epic, type, priority, title, description, scope, rationale, and done criteria, and waits for the user's approval intent ("yes" / "create it").
- If, mid-sequence, the user orders a related addition ("make this one separately too"), create the currently approved item first, then run the addition through its own proposal/approval gate before creating it. Don't force-merge into one ticket; if the responsibility scope differs, split into a separate backlog item.
- Per-item approval → creation: for each picked item, use the
request_approvaltool with [Allow]/[Deny] buttons (title= the item title,detail= description, rationale, priority, done criteria). No prose "please approve".
- Only APPROVED items proceed to Jira creation below. DENIED / NO_RESPONSE items are not created.
- Create: create approved items via the Jira REST API and reply with the created key (e.g. PROJ-11).
``bash set -a; . ~/.hermes/keys/jira.env; set +a BASE="${JIRA_BASE_URL%/}" curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" -X POST \ "$BASE/rest/api/3/issue" -d '{ "fields": { "project": {"key": "'"$KEY"'"}, "summary": "", "issuetype": {"name": "Story"}, "priority": {"name": ""}, "description": {"type":"doc","version":1,"content":[ {"type":"paragraph","content":[{"type":"text","text":""}]}, {"type":"paragraph","content":[{"type":"text","text":"Done criteria: "}]}, {"type":"paragraph","content":[{"type":"text","text":"Evidence: PRD §N · wiki/"}]}]} } }' ``
- The
keyin the response JSON is the created backlog number. For multiple items, create them one by one and report the collected results. - Issue type name:
Story(orTaskfor plain work items) — use the issue-type names your Jira locale actually shows. On failure, report the raw response; no guess-based workarounds.
Security
- Load
jira.env(Jira-only credentials) only viaset -a; . ~/.hermes/keys/jira.env; set +a. Never echo, log, or message the token.
Isolation
- This channel = this project only. Query and create only under this channel's Jira key (
KEY). Other projects are off-limits. - Never invent backlog items for features not in the PRD (a gap beats an overreach). When ambiguous, ask the human.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: loremaster-ai
- Source: loremaster-ai/loremaster
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.