Parent
Epic: #200 — unic-spec-review plugin.
What to build
Open the posting write path behind --post. With --post, the command can publish a selected Finding as a Confluence comment, anchored to the exact spec text where possible and falling back to a page-level comment otherwise, each carrying a visible attribution footer.
- Extend
atlassian-fetch with a Confluence comment write path (inline and footer comments) via the v2 API.
- Add
inline-anchor-resolver: resolves a Finding's anchor text against the fetched page body into a textSelection and matchCount for the v2 inline-comment API, or decides a page-level footer fallback when the text cannot be uniquely matched.
- Add
attribution-footer: renders the visible provenance footer on every posted comment (which command authored it and the Finding's category) and recognises command-authored comments by that footer. No hidden marker.
Write-safety invariant: bare /review-spec stays strictly read-only. --post makes posting possible, never automatic. This slice may post a single confirmed Finding directly (the cancellable multi-step Approval Loop and dedup arrive in S8); the simplest safe confirmation is acceptable here, but posting must never happen without an explicit user go-ahead, and the user must be able to decline.
Acceptance criteria
Blocked by
Parent
Epic: #200 — unic-spec-review plugin.
What to build
Open the posting write path behind
--post. With--post, the command can publish a selected Finding as a Confluence comment, anchored to the exact spec text where possible and falling back to a page-level comment otherwise, each carrying a visible attribution footer.atlassian-fetchwith a Confluence comment write path (inline and footer comments) via the v2 API.inline-anchor-resolver: resolves a Finding's anchor text against the fetched page body into atextSelectionandmatchCountfor the v2 inline-comment API, or decides a page-level footer fallback when the text cannot be uniquely matched.attribution-footer: renders the visible provenance footer on every posted comment (which command authored it and the Finding's category) and recognises command-authored comments by that footer. No hidden marker.Write-safety invariant: bare
/review-specstays strictly read-only.--postmakes posting possible, never automatic. This slice may post a single confirmed Finding directly (the cancellable multi-step Approval Loop and dedup arrive in S8); the simplest safe confirmation is acceptable here, but posting must never happen without an explicit user go-ahead, and the user must be able to decline.Acceptance criteria
atlassian-fetchcan write a Confluence comment (inline v2textSelection/matchCount, and footer/page-level) with injectedfetch.inline-anchor-resolverresolves anchor text to a uniquetextSelection+matchCount, or returns a footer-fallback decision when the match is absent or ambiguous.attribution-footerrenders a visible footer on every posted comment and can recognise a command-authored comment by it; no hidden marker./review-spec(no--post) performs zero writes. With--post, a Finding is posted only after explicit user confirmation, and the user can decline (post nothing).node:testunit tests coverinline-anchor-resolver,attribution-footer, and theatlassian-fetchcomment-write path with injected deps; no live services. The confluence-writer thin wrapper is not unit-tested.CHANGELOG.mdbullets under[Unreleased]and bumps the patch version;verify:changelogpasses. No em dash in authored text (except the mandated CHANGELOG version header).Blocked by
atlassian-fetch, classifier, report).