OCPEDGE-2768: feat(edge-ic): add /morning daily briefing skill#198
OCPEDGE-2768: feat(edge-ic): add /morning daily briefing skill#198lucaconsalvi wants to merge 24 commits into
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: lucaconsalvi The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughThree new documentation files are added for the Changesedge-ic:morning Skill Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error)
✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/edge-ic/references/MORNING_CONFIG_FORMAT.md`:
- Around line 53-57: The `rhel_verification.enabled` configuration row is marked
as required (yes) in the MORNING_CONFIG_FORMAT.md table, but since it defaults
to false, it should be optional. Change the Required column value for the
`rhel_verification.enabled` row from "yes" to "no" to accurately reflect that
users can omit this configuration option unless they explicitly want to enable
RHEL verification.
In `@plugins/edge-ic/references/MORNING_OUTPUT_FORMAT.md`:
- Line 65: The progress bar in the template is being wrapped twice with the `▐`
and `▌` characters. The progress_bar variable is already defined with these
wrapper characters, but the template at line 65 wraps it again, creating double
wrapping `▐▐…▌▌`. Remove the outer `▐` and `▌` wrapper characters from around
the progress_bar placeholder in the template so it displays correctly as a
single wrapped bar. Apply the same fix to all similar occurrences mentioned in
lines 123-137 where the same double-wrapping issue exists.
- Around line 110-113: The content lines specification allows URLs and summaries
to overflow past the 60-column right border, which contradicts the strict
60-column guarantee established earlier in the document. In the content lines
description (currently stating that long content can overflow past the right
border), revise the wording to enforce that long content such as URLs and
summaries must be wrapped or truncated to maintain the 60-column alignment,
rather than being permitted to spill beyond the border.
In `@plugins/edge-ic/skills/morning/SKILL.md`:
- Around line 388-415: The Edge Cases and Gotchas sections are isolated from the
main workflow steps, which causes agents to miss critical failure handling
during execution. Integrate these notes directly into the relevant workflow
steps: merge the "No active sprint," "Board IDs not set," and "Legacy board_id
field" notes into Step 4 (where jira_get_sprints_from_board is called), merge
the "JIRA MCP unavailable" and story points field handling into Step 5, merge
the "PR dashboard unavailable" and run ID parsing notes into Step 7, and merge
the "macOS vs Linux date commands" note into Step 10. Place each failure policy
immediately before or after the relevant tool invocation so the agent encounters
the handling rules in context with the tool call.
- Around line 183-193: The bash code in the "Determine yesterday's workday"
section uses BSD/macOS-specific date syntax (date -v-*d) which will fail on
Linux systems. Replace this with portable date logic that works across both
Linux and macOS by detecting the operating system or using conditional date
syntax that handles both -d (GNU/Linux) and -v (BSD/macOS) flags. Include this
portable solution directly in the code block instead of deferring the
explanation to a separate Gotchas section. Apply the same portable date approach
to the equivalent code block referenced at lines 294-308.
- Around line 109-118: The JQL query construction in the morning skill is
vulnerable to injection attacks because configuration values like
jira.qa_statuses, jira.qa_components, rhel_verification.project,
rhel_verification.summary_filter, and rhel_verification.component are
interpolated directly into JQL strings without escaping. Implement JQL-compliant
string escaping (such as backslash-escaping special characters or using JQL
string literals) for all user-provided config values before they are substituted
into the JQL queries in both locations (lines 109-118 and lines 323-325). Create
a utility function or inline escaping logic that handles special characters like
quotes, asterisks, and backslashes before building the query strings.
- Around line 245-251: The `gh pr view` command uses the GitHub REST API, which
does not provide the `resolvedAt` field for tracking comment resolution state.
Replace this REST API query with a GraphQL query similar to the one already
correctly implemented in `plugins/pr-review/scripts/pr-comments.sh`. Query the
`reviewThreads` field from the GraphQL API and use the `isResolved` field at the
thread level to properly count unresolved review threads, rather than attempting
to use the non-existent `resolvedAt` field from the REST API response.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: bb367c61-f602-4787-8da2-526967feefb2
📒 Files selected for processing (3)
plugins/edge-ic/references/MORNING_CONFIG_FORMAT.mdplugins/edge-ic/references/MORNING_OUTPUT_FORMAT.mdplugins/edge-ic/skills/morning/SKILL.md
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
plugins/edge-ic/skills/morning/SKILL.md (2)
415-423:⚠️ Potential issue | 🟠 Major | ⚡ Quick winKeep the notes panel when everything else is empty.
The
Nothing on your platebranch reads like a terminal state, but line 417 still says upstream failures must surface in the notes panel. Make the header-only path conditional on "no items and no error notes" so failures don't disappear.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/edge-ic/skills/morning/SKILL.md` around lines 415 - 423, The condition for displaying the header-only "Nothing on your plate" state is too broad and contradicts the error notes requirement. Update the specification around line 415 where it says "If all sections are empty" to be more specific: the header-only view should only display when both all sections are empty AND no error notes exist. This ensures that when data source failures occur, the error notes panel is always visible even if there are no task items to display, preventing failures from being silently hidden.
49-55:⚠️ Potential issue | 🟡 MinorPrompt for GitHub login explicitly if
gh api userfails; don't usegit config user.name.The
git config user.namefallback typically contains a display name, not the login. If the user accepts it, subsequent PR author filtering will fail because GitHub's HTML artifact uses login usernames. Ask the user directly instead.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/edge-ic/skills/morning/SKILL.md` around lines 49 - 55, The current implementation uses git config user.name as a fallback when gh api user fails, but this returns a display name rather than a login username, which will cause GitHub filtering to fail later. Remove the git config user.name fallback from the command chain and instead add explicit logic to prompt the user directly to enter their GitHub login username if the gh api user command fails, ensuring the value provided is the actual login identifier that GitHub uses.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/edge-ic/skills/morning/SKILL.md`:
- Around line 260-276: The GraphQL query for reviewThreads currently uses a
hardcoded first:100 parameter which will silently undercount unresolved reviews
on PRs with more than 100 threads. Fix this by either implementing cursor-based
pagination using pageInfo and endCursor to fetch all threads iteratively, or
simplify the query by removing the full nodes enumeration and using the
totalCount field instead to directly get the count of all review threads without
needing to fetch individual thread objects. Choose the simpler totalCount
approach unless you specifically need to filter threads by additional criteria
beyond resolution state.
- Around line 191-208: The capability check commands in the if statements are
outputting their date results to stdout before the actual assignment happens,
polluting the output. In both the macOS/BSD check (the if statement with date
-v-1d) and the Linux/GNU check mentioned at line 334, redirect stdout to
/dev/null in addition to the existing stderr redirection, so the probing
commands produce no output and only indicate success or failure through their
exit status.
---
Outside diff comments:
In `@plugins/edge-ic/skills/morning/SKILL.md`:
- Around line 415-423: The condition for displaying the header-only "Nothing on
your plate" state is too broad and contradicts the error notes requirement.
Update the specification around line 415 where it says "If all sections are
empty" to be more specific: the header-only view should only display when both
all sections are empty AND no error notes exist. This ensures that when data
source failures occur, the error notes panel is always visible even if there are
no task items to display, preventing failures from being silently hidden.
- Around line 49-55: The current implementation uses git config user.name as a
fallback when gh api user fails, but this returns a display name rather than a
login username, which will cause GitHub filtering to fail later. Remove the git
config user.name fallback from the command chain and instead add explicit logic
to prompt the user directly to enter their GitHub login username if the gh api
user command fails, ensuring the value provided is the actual login identifier
that GitHub uses.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 83c7cb93-43ca-4fed-8540-0f81479ce5b9
📒 Files selected for processing (3)
plugins/edge-ic/references/MORNING_CONFIG_FORMAT.mdplugins/edge-ic/references/MORNING_OUTPUT_FORMAT.mdplugins/edge-ic/skills/morning/SKILL.md
✅ Files skipped from review due to trivial changes (2)
- plugins/edge-ic/references/MORNING_CONFIG_FORMAT.md
- plugins/edge-ic/references/MORNING_OUTPUT_FORMAT.md
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
plugins/edge-ic/skills/morning/SKILL.md (2)
255-298:⚠️ Potential issue | 🔴 CriticalFix 58 markdownlint violations and update the output format contract reference.
Per CONTRIBUTING.md, Markdown files must pass
npx markdownlint-cli2before committing. The file currently has 58 errors:
- MD013/line-length: Lines 21, 38, 42, 48, 57, 69, 71, 77, 78, 82, 90, 105, 107, 113, 115, 118, 121, 129, 131, 133, 147, 149, 155, 168, 171, 174, 176, 181, 182, 195, 244, 246, 262, 265, 267, 282, 286, 306, 309, 311, 346, 364, 366, 371, 374, 385, 394, 400, 405, 407, 415, 416, 418, 420, 425, 429, 432 exceed 80 characters
- MD034/no-bare-urls: Line 360 contains a bare URL that must be wrapped in markdown link syntax
Additionally, Step 5 sets
days_idleandmissing_labelsto"?"butplugins/edge-ic/references/MORNING_OUTPUT_FORMAT.md(line 86) still documents the template placeholder as{labels}for missing labels. Either updateMORNING_OUTPUT_FORMAT.mdto explicitly show and explain the "?" placeholders in the template example, or refactor Step 5 to computedays_idlefrom the PR'screatedAttimestamp and restore missing labels detection via an alternative data source.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/edge-ic/skills/morning/SKILL.md` around lines 255 - 298, Fix all 58 markdownlint violations in the SKILL.md file: break lines that exceed 80 characters (primarily affecting the gh command examples and descriptions in Step 5 and other sections) by rewrapping them to fit within the limit, wrap any bare URLs in markdown link syntax (specifically the URL at line 360), and ensure all markdown formatting complies with the markdownlint-cli2 standard. Additionally, update the output format reference in plugins/edge-ic/references/MORNING_OUTPUT_FORMAT.md to explicitly show and explain that the days_idle and missing_labels fields now use "?" placeholders instead of computed values, as documented in Step 5 where these fields are set to "?" due to the CI dashboard no longer being fetched.
1-17:⚠️ Potential issue | 🔴 CriticalAdd Edge Cases section documenting failure modes and skip conditions.
Per SKILL-GUIDELINES.md, orchestrator skills (multi-step workflows like this one with Steps 0–10) must include an Edge Cases section to document failure modes, guard checks, skip behavior, and any conditional rendering logic. This section is currently missing.
The edge cases to document include:
- Behavior when JIRA MCP fails for QA tasks, sprint backlog, or RHEL queue (steps already handle gracefully by recording error notes; document this)
- Behavior when config file is missing or malformed (Step 1 recovery flow)
- Behavior when daily notes file does not exist (Step 4 silently skips)
- Carry-over item format detection failure (Step 4 fallback to freeform)
- PR stale-filtering logic (200-day cutoff in Steps 5–6)
- Deduplication behavior (Step 9) when the same ticket appears in multiple sections
- Empty briefing output (Step 10 renders a calm message instead of empty panels)
Frontmatter verification passed:
namefield is correct (edge-ic:morning),descriptionis 234 chars (under 1024 limit) and starts with action verb,allowed-toolscomprehensively covers all tools invoked in steps 2–8 (Bash, Read, Write, WebFetch, AskUserQuestion, all jira_* endpoints), and file is 448 lines (under 500 warning threshold). Markdown lint validation passed.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/edge-ic/skills/morning/SKILL.md` around lines 1 - 17, The edge-ic:morning skill is missing a required Edge Cases section as per SKILL-GUIDELINES.md for orchestrator skills. Add an Edge Cases section to the SKILL.md file that documents the seven failure modes and skip conditions: behavior when JIRA MCP endpoints fail for QA tasks, sprint backlog, or RHEL queue (graceful error handling); behavior when the config file is missing or malformed with recovery flow details from Step 1; behavior when the daily notes file does not exist causing Step 4 to silently skip; the carry-over item format detection fallback to freeform; the PR stale-filtering logic using the 200-day cutoff threshold from Steps 5-6; the deduplication behavior in Step 9 when tickets appear across multiple sections; and the empty briefing output handling in Step 10 that renders a calm message instead of empty panels. This section should be placed in the SKILL.md file after the frontmatter block to document all edge cases and conditional behavior throughout the workflow steps.Source: Coding guidelines
🧹 Nitpick comments (2)
plugins/edge-ic/skills/morning/SKILL.md (2)
100-108: 🧹 Nitpick | 🔵 Trivial | 💤 Low valueClarify the step numbering convention.
The file uses "Step 0" (implicit), "Step 1", then "Steps 2-8" (grouped), then "Step 9", "Step 10". While this structure is functionally clear, it's non-standard and may confuse readers unfamiliar with the file. Consider documenting the structure upfront or renumbering for clarity (e.g., explicitly calling out "Step 1: Config", "Steps 2–8: Parallel Data Gathering", "Step 9: Dedup", "Step 10: Render").
This is a low-priority readability improvement and not a blocker.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/edge-ic/skills/morning/SKILL.md` around lines 100 - 108, The step numbering structure in the SKILL.md file is unclear and non-standard, using implicit Step 0, Step 1, grouped Steps 2-8, then Step 9 and Step 10. Add an upfront section documenting the overall workflow structure explicitly, and update each step reference to include a clear descriptive phase label (e.g., "Step 1: Config Setup", "Steps 2–8: Parallel Data Gathering", "Step 9: Deduplication", "Step 10: Render Output"). This will help readers understand the logical flow and dependencies without confusion.
109-142: 🧹 Nitpick | 🔵 TrivialEscaping is documented as an agent requirement, but design relies on agent compliance rather than code enforcement.
The instruction at line 121 directs the agent: "Before interpolating any config value into JQL, escape backslashes as
\\and double-quotes as\"." This is repeated at line 374 forrhel_verification.*values. However, this skill is an instruction document for an LLM agent — there is no separate escaping function in code. Security depends entirely on Claude following the text directive during execution.Since this architecture uses agent-directed instructions rather than code-enforced validation, consider:
- Document explicitly in SKILL.md what the agent must validate (not just what to do)
- Add concrete examples showing malicious config that breaks JQL if unescaped (helps the agent recognize edge cases)
- If higher assurance is needed, move JQL construction to a helper tool with built-in escaping rather than relying on agent instruction compliance
The current approach is acceptable if the agent reliably follows text instructions, but harder to verify at code review time.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/edge-ic/skills/morning/SKILL.md` around lines 109 - 142, The escaping requirement in Step 2 (Query JIRA for QA tasks) relies on agent compliance without explicit validation. Enhance the SKILL.md documentation by adding concrete examples that show how unescaped config values (containing double-quotes or backslashes) would break the JQL query and potentially cause injection issues. Include a clear "Validation Checklist" section that explicitly lists what the agent must verify before executing the jira_search call, such as confirming that all config values from jira.qa_statuses and jira.qa_components have been properly escaped. Additionally, repeat this guidance for the rhel_verification section (around line 374) to maintain consistency across the document.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@plugins/edge-ic/skills/morning/SKILL.md`:
- Around line 255-298: Fix all 58 markdownlint violations in the SKILL.md file:
break lines that exceed 80 characters (primarily affecting the gh command
examples and descriptions in Step 5 and other sections) by rewrapping them to
fit within the limit, wrap any bare URLs in markdown link syntax (specifically
the URL at line 360), and ensure all markdown formatting complies with the
markdownlint-cli2 standard. Additionally, update the output format reference in
plugins/edge-ic/references/MORNING_OUTPUT_FORMAT.md to explicitly show and
explain that the days_idle and missing_labels fields now use "?" placeholders
instead of computed values, as documented in Step 5 where these fields are set
to "?" due to the CI dashboard no longer being fetched.
- Around line 1-17: The edge-ic:morning skill is missing a required Edge Cases
section as per SKILL-GUIDELINES.md for orchestrator skills. Add an Edge Cases
section to the SKILL.md file that documents the seven failure modes and skip
conditions: behavior when JIRA MCP endpoints fail for QA tasks, sprint backlog,
or RHEL queue (graceful error handling); behavior when the config file is
missing or malformed with recovery flow details from Step 1; behavior when the
daily notes file does not exist causing Step 4 to silently skip; the carry-over
item format detection fallback to freeform; the PR stale-filtering logic using
the 200-day cutoff threshold from Steps 5-6; the deduplication behavior in Step
9 when tickets appear across multiple sections; and the empty briefing output
handling in Step 10 that renders a calm message instead of empty panels. This
section should be placed in the SKILL.md file after the frontmatter block to
document all edge cases and conditional behavior throughout the workflow steps.
---
Nitpick comments:
In `@plugins/edge-ic/skills/morning/SKILL.md`:
- Around line 100-108: The step numbering structure in the SKILL.md file is
unclear and non-standard, using implicit Step 0, Step 1, grouped Steps 2-8, then
Step 9 and Step 10. Add an upfront section documenting the overall workflow
structure explicitly, and update each step reference to include a clear
descriptive phase label (e.g., "Step 1: Config Setup", "Steps 2–8: Parallel Data
Gathering", "Step 9: Deduplication", "Step 10: Render Output"). This will help
readers understand the logical flow and dependencies without confusion.
- Around line 109-142: The escaping requirement in Step 2 (Query JIRA for QA
tasks) relies on agent compliance without explicit validation. Enhance the
SKILL.md documentation by adding concrete examples that show how unescaped
config values (containing double-quotes or backslashes) would break the JQL
query and potentially cause injection issues. Include a clear "Validation
Checklist" section that explicitly lists what the agent must verify before
executing the jira_search call, such as confirming that all config values from
jira.qa_statuses and jira.qa_components have been properly escaped.
Additionally, repeat this guidance for the rhel_verification section (around
line 374) to maintain consistency across the document.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 16c0077a-b9e9-4004-831d-268e619f990d
📒 Files selected for processing (1)
plugins/edge-ic/skills/morning/SKILL.md
…and story points
Three fixes from test-run findings:
1. QA section: use "QA Contact" (customfield_10470) instead of assignee
to find tickets where user is the tester, not the developer. Remove
the watch_statuses setup question — sprint backlog always shows
non-Done tasks, no status filter needed.
2. Sprint backlog: use JQL search (assignee = currentUser() AND sprint =
{id}) instead of jira_get_sprint_issues, which silently fails to
paginate on large boards (100+ issues).
3. Story points: try customfield_10028 ("Story Points") first, then
customfield_10016 ("Story point estimate"). The board uses 10028.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… fix I glyph - Replace Calvin S box-drawing title with block pixel font (▀▄█ half-blocks) - Replace emoji section markers (🟣🔵🔄📋👀🔧⏰) with ASCII » prefix - Simplify border alignment: all borders now uniformly 60 raw chars - Fix I glyph (was identical to T with ▀█▀ serifs, now single █ column) - Update config format docs to match new title style Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- MORNING_CONFIG_FORMAT.md: mark rhel_verification.enabled as optional (no) - MORNING_OUTPUT_FORMAT.md: remove double progress-bar wrapper (▐▐…▌▌ → single) - MORNING_OUTPUT_FORMAT.md: clarify overflow rule — summaries wrap, URLs may extend - SKILL.md: add JQL escaping note at both interpolation sites (QA + RHEL steps) - SKILL.md: replace macOS-only date syntax with portable OS-detect at both call sites - SKILL.md: replace REST resolvedAt with GraphQL reviewThreads.isResolved for unresolved PR count - SKILL.md: inline Edge Cases and Gotchas into their respective workflow steps; remove separate sections Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- J: add bottom hook (▀▄▄▀) - L: trim base to 3-wide (▀▀▀) - Q: add tail (▀▀▀▄) to distinguish from O - X: fix bottom spread (▄▀ ▀▄) to mirror top Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…s uses gh fallback - Progress bar now explicitly represents story points completion, not sprint days elapsed - Step 5 supplements CI dashboard with `gh search prs --author=@me` to catch recent PRs not yet indexed by the periodic notifier job; results are merged and deduplicated Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…oard, lazy comment scan - Instruct agent to batch all Steps 2-8 tool calls in a single turn for true parallelism - Remove CI dashboard WebFetch (slow, periodic lag); gh search prs is now the sole PR source - Skip per-ticket jira_get_issue comment scan when >3 QA tickets to avoid serial roundtrips Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…quire precise days_open calc
…panel by assignment Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
ccd0517 to
2e0bb36
Compare
…ects, make configurable Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ngle-query sprint fetch - Batch all PR review thread GraphQL calls into one query (N round-trips → 1) - Combine authored + review-requested gh search into one Bash call - Replace per-board sprint discovery with single openSprints() JQL query Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…s for unassigned, inline rendering, drop GraphQL - Split QA into two queries: your QA (limit 20) and unassigned (limit 10, requires qa_components) - Without component filter, unassigned query returned 50+ tickets (~12k tokens) causing 6+ min render time - Inline all rendering rules in Step 10, pre-render default title — no more reading output format reference - Drop per-PR GraphQL review thread fetch entirely Total execution time reduced from ~9min to ~2.5min. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…nd lists Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
LVMS plugin.json bump, README update, and run-integration-tests skill were accidentally included. Revert them to match origin/main. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Accidentally included in earlier commit, belongs in a separate PR. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Summary
/morningskill to the edge-ic plugin — a daily briefing that aggregates QA tasks, sprint backlog, carry-over items, open PRs, review queue, RHEL verification queue, and quarterlyreminders into a single prioritized terminal output
MORNING_CONFIG_FORMAT.md), and output format reference (MORNING_OUTPUT_FORMAT.md)»section markers, rounded box-drawing panels aligned at 60 columnsFiles
plugins/edge-ic/skills/morning/SKILL.mdplugins/edge-ic/references/MORNING_CONFIG_FORMAT.md$HOME/.config/edge-ic/morning.yamlplugins/edge-ic/references/MORNING_OUTPUT_FORMAT.mdTest plan
/morningwith no config — verify setup wizard runs/morningwith config — verify data gathering and output rendering»section markers align at 60 columnsSummary by CodeRabbit
edge-ic:morningconfiguration reference, including a full YAML schema, defaults, setup/first-run guidance, and daily-notes date/path placeholders.edge-ic:morningoutput reference, specifying the complete briefing layout (panels, banners, section rules), formatting, omission behavior, and summary/error-note logic.edge-ic:morningskill docs covering the end-to-end flow (config handling, Jira QA task selection, sprint urgency, carry-over parsing, PR/review queues, quarter reminders, and optional RHEL verification).