Skip to content
Merged
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
700c360
perf: optimize startup performance with metadata tracking and update …
djm81 Jan 27, 2026
4b167dd
Merge branch 'main' into dev
djm81 Jan 27, 2026
e4782ea
fix: add missing ADO field mappings and assignee display (#145)
djm81 Jan 27, 2026
a2f6ac7
Merge branch 'main' into dev
djm81 Jan 27, 2026
c74a773
fix: mitigate code scanning vulnerabilities (#148)
djm81 Jan 27, 2026
af030dc
fix: detect GitHub remotes using ssh:// and git:// URLs
djm81 Jan 27, 2026
db827a0
chore: bump version to 0.26.9 and update changelog
djm81 Jan 27, 2026
1ade334
Merge branch 'main' into dev
djm81 Jan 27, 2026
5c1cb41
fix: compare GitHub SSH hostnames case-insensitively
djm81 Jan 27, 2026
68cc345
Merge branch 'main' into dev
djm81 Jan 27, 2026
dfeb7ca
Add openspec and workflow commands for transparency
djm81 Jan 27, 2026
9e1f22d
Add specs from openspec
djm81 Jan 27, 2026
115e402
Remove aisp change which wasn't implemented
djm81 Jan 27, 2026
2675361
Fix openspec gitignore pattern
djm81 Jan 27, 2026
573fb7b
Update gitignore
djm81 Jan 27, 2026
907501e
Update contribution standards to use openspec for SDD
djm81 Jan 27, 2026
568000c
Merge branch 'main' into dev
djm81 Jan 27, 2026
fe082f6
Migrate to new opsx openspec commands
djm81 Jan 27, 2026
036afbe
Migrate workflow and openspec config
djm81 Jan 28, 2026
5a1493f
fix: bump version to 0.26.10 for PyPI publish
djm81 Jan 28, 2026
da606a1
Update version and changelog
djm81 Jan 28, 2026
608f317
Add canonical user-friendly workitem url for ado workitems
djm81 Jan 28, 2026
719256c
Update to support OSPX
djm81 Jan 28, 2026
1f94d7c
Merge branch 'main' into dev
djm81 Jan 28, 2026
bbf730a
feat(backlog): implement refine --import-from-tmp and fix type-check …
djm81 Jan 28, 2026
080743a
Merge branch 'main' into dev
djm81 Jan 28, 2026
5ab46a5
Merge branch 'main' into dev
djm81 Jan 28, 2026
1cdfc66
feat: debug logs under ~/.specfact/logs and release 0.26.13 (#159)
djm81 Jan 29, 2026
6bd9d7f
Potential fix for pull request finding 'Empty except'
djm81 Jan 29, 2026
d7d194b
Fix unused variable review
djm81 Jan 29, 2026
39563fc
Fix unused variable review
djm81 Jan 29, 2026
d15485a
Fix type and test errors
djm81 Jan 29, 2026
6c9c9b9
Merge branch 'main' into dev
djm81 Jan 29, 2026
bd9b96a
Finalize change
djm81 Jan 29, 2026
c7e4546
Change for debug logs archived
djm81 Jan 29, 2026
09e8040
Merge branch 'main' into dev
djm81 Jan 29, 2026
642e1a9
fix: improve ADO backlog refine error logging and user-facing error U…
djm81 Jan 29, 2026
64365db
Merge branch 'main' into dev
djm81 Jan 29, 2026
0d0abba
feat: backlog refine --ignore-refined and --id, startup docs (fixes #…
djm81 Jan 30, 2026
aad02cd
Add change proposals for full scrum support
djm81 Jan 30, 2026
a3c3fb4
Merge branch 'main' into dev
djm81 Jan 30, 2026
1f054c5
Add support for systematic, structured issue creation with copilot help
djm81 Jan 30, 2026
899b9c2
feat(backlog): daily standup defaults, iteration/sprint, unassigned i…
djm81 Feb 3, 2026
b596766
Issue 179 resolution (#180)
djm81 Feb 3, 2026
bb7214f
Merge branch 'main' into dev
djm81 Feb 3, 2026
61a820c
fix(backlog): address CodeQL/Codex PR 181 findings
djm81 Feb 3, 2026
10fee30
Update openspec enforcement rules
djm81 Feb 3, 2026
8e770dc
Structure openspec changes
djm81 Feb 3, 2026
5782860
Fix ruff finding
djm81 Feb 3, 2026
05c592d
Fix linter issues with StrEnum and parameters
djm81 Feb 3, 2026
f7e3d0f
Fix tests and depcreation warnings
djm81 Feb 3, 2026
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
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,20 @@ All notable changes to this project will be documented in this file.

---

## [0.26.17] - 2026-02-03

### Fixed (0.26.17)

- **Daily standup exports: comment annotations** (fixes [#179](https://github.com/nold-ai/specfact-cli/issues/179))
- **`--comments` / `--annotations`**: Include item descriptions and comment annotations in `--copilot-export` and
`--summarize`/`--summarize-to` outputs when the adapter supports `get_comments` (GitHub).
- **Docs**: Updated daily standup tutorial and guides to document the new flags and outputs.

### Changed (0.26.17)

- **Version**: Bumped to 0.26.17 for issue [#179](https://github.com/nold-ai/specfact-cli/issues/179)

---
## [0.26.16] - 2026-02-02

### Added (0.26.16)
Expand Down
29 changes: 20 additions & 9 deletions docs/getting-started/tutorial-daily-standup-sprint-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,12 @@ This tutorial walks you through a complete **daily standup and sprint review** w
- Use **`.specfact/backlog.yaml`** or environment variables when you're not in the repo (e.g. CI) or to override
- **Post a standup comment** to the first (or selected) item with `--yesterday`, `--today`, `--blockers` and `--post`
- Use **`--interactive`** for step-by-step story review (arrow-key selection, full detail, **existing comments on each issue** when the adapter supports them)
- Use **`--copilot-export <path>`** to write a Markdown summary for Copilot slash-command during standup
- Use **`--summarize`** or **`--summarize-to <path>`** to output a **prompt** (instruction + filter context + standup data) for a slash command (e.g. `specfact.daily`) or copy-paste to Copilot to **generate a standup summary**
- Use **`--copilot-export <path>`** to write a Markdown summary for Copilot slash-command during standup;
add **`--comments`** (alias **`--annotations`**) to include descriptions and comment annotations when
the adapter supports fetching comments
- Use **`--summarize`** or **`--summarize-to <path>`** to output a **prompt** (instruction + filter context
+ standup data) for a slash command (e.g. `specfact.daily`) or copy-paste to Copilot to **generate a
standup summary**; add **`--comments`**/**`--annotations`** to include comment annotations in the prompt
- Use the **`specfact.backlog-daily`** (or `specfact.daily`) slash prompt for interactive walkthrough with the DevOps team story-by-story (focus, issues, open questions, discussion notes as comments)
- Filter by **`--assignee`**, **`--sprint`** / **`--iteration`**, **`--blockers-first`**, and optional **`--suggest-next`**

Expand Down Expand Up @@ -121,10 +125,13 @@ Use **`--suggest-next`** to show a suggested next item by value score (business
To feed a **summary file** into your AI IDE (e.g. for a Copilot slash-command during standup):

```bash
specfact backlog daily github --copilot-export ./standup-summary.md
specfact backlog daily github --copilot-export ./standup-summary.md --comments
```

The file contains one section per item (ID, title, status, assignees, last updated, progress, blockers). You can open it in your IDE and use it with Copilot. Same scope as the standup table (state, assignee, limit, etc.).
The file contains one section per item (ID, title, status, assignees, last updated, progress, blockers).
With `--comments`/`--annotations`, it also includes the item description and comment annotations when the
adapter supports fetching comments. You can open it in your IDE and use it with Copilot. Same scope as
the standup table (state, assignee, limit, etc.).

---

Expand All @@ -134,13 +141,17 @@ To get a **prompt** you can paste into Copilot or feed to a slash command (e.g.

```bash
# Print prompt to stdout (copy-paste to Copilot)
specfact backlog daily github --summarize
specfact backlog daily github --summarize --comments

# Write prompt to a file (e.g. for slash command)
specfact backlog daily github --summarize-to ./standup-prompt.md
specfact backlog daily github --summarize-to ./standup-prompt.md --comments
```

The output includes an instruction to generate a standup summary, the applied filter context (adapter, state, sprint, assignee, limit), and the same per-item data as `--copilot-export`. Use it with the **`specfact.backlog-daily`** slash prompt for interactive team walkthrough (story-by-story, current focus, issues/open questions, discussion notes as comments).
The output includes an instruction to generate a standup summary, the applied filter context (adapter,
state, sprint, assignee, limit), and the same per-item data as `--copilot-export`. With
`--comments`/`--annotations`, the prompt includes comment annotations when supported. Use it with the
**`specfact.backlog-daily`** slash prompt for interactive team walkthrough (story-by-story, current focus,
issues/open questions, discussion notes as comments).

---

Expand Down Expand Up @@ -187,8 +198,8 @@ The output includes an instruction to generate a standup summary, the applied fi
| Override or use outside repo | Use `.specfact/backlog.yaml`, env vars (`SPECFACT_GITHUB_REPO_OWNER`, etc.), or CLI `--repo-owner`/`--repo-name` or `--ado-org`/`--ado-project`. |
| Post standup to first item | Use `--yesterday "..."` `--today "..."` `--blockers "..."` and `--post` (values required). |
| Step through stories with full detail (including issue comments) | Use `--interactive`; optionally `--suggest-next`. |
| Feed standup into Copilot | Use `--copilot-export <path>`. |
| Generate standup summary via AI (slash command or Copilot) | Use `--summarize` (stdout) or `--summarize-to <path>`; use with `specfact.backlog-daily` slash prompt. |
| Feed standup into Copilot | Use `--copilot-export <path>`; add `--comments`/`--annotations` for comment annotations. |
| Generate standup summary via AI (slash command or Copilot) | Use `--summarize` (stdout) or `--summarize-to <path>`; add `--comments`/`--annotations` for comment annotations; use with `specfact.backlog-daily` slash prompt. |

---

Expand Down
36 changes: 32 additions & 4 deletions docs/guides/agile-scrum-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,29 @@ SpecFact CLI supports real-world agile/scrum practices through:

- **Definition of Ready (DoR)**: Automatic validation of story readiness for sprint planning
- **Backlog Refinement** πŸ†•: AI-assisted template-driven refinement for standardizing work items from DevOps backlogs
- **Daily Standup**: Use `specfact backlog daily <adapter>` to list my/filtered items with status and last activity. Default scope (state=open, limit=20, optional assignee=me) is applied when not overridden; configure via `SPECFACT_STANDUP_STATE`, `SPECFACT_STANDUP_LIMIT`, `SPECFACT_STANDUP_ASSIGNEE` or `.specfact/standup.yaml`. Use `--iteration` / `--sprint` (e.g. `--sprint current`) to focus on current iteration when the adapter supports it; sprint/iteration end date is shown when provided by adapter or config (`standup.sprint_end_date`). A second table **Pending / open for commitment** lists unassigned items (same scope); use `--show-unassigned`/`--no-show-unassigned` or `--unassigned-only`. Use `--blockers-first` to sort items with blockers first; enable `show_priority` or `show_value` in standup config for optional priority/value column (value-driven/SAFe). Optional standup summary (yesterday/today/blockers) from item body; optionally post standup comment to linked issue via `--post` when the adapter supports comments (e.g. GitHub). **Interactive step-by-step review**: Use `--interactive` to select stories with arrow keys (questionary) and view full detail (refine-like: description, acceptance criteria, standup fields, comments when adapter supports); navigate with Next/Previous/Back to list/Exit. Use `--suggest-next` to show suggested next item by value score (business_value / (story_points Γ— priority)). **Copilot export**: Use `--copilot-export <path>` to write a summarized Markdown file of each story for use with Copilot slash-command during standup (complementary aid, not replacement for backlog). **Kanban**: omit iteration/sprint and use state + limit; unassigned = pullable work. **Scrum/SAFe**: use `--sprint current` and optional priority/value. **Out of scope**: Sprint goal is in your board/sprint settings (not displayed by CLI). Stale/at-risk flags (e.g. "no update in N days") are not in scopeβ€”use last updated + blockers. Structured "blocked by" (link to another issue) is not in scope; only free-text blockers are supported.
- **Daily Standup**: Use `specfact backlog daily <adapter>` to list my/filtered items with status and last activity.
Default scope (state=open, limit=20, optional assignee=me) is applied when not overridden; configure via
`SPECFACT_STANDUP_STATE`, `SPECFACT_STANDUP_LIMIT`, `SPECFACT_STANDUP_ASSIGNEE` or
`.specfact/standup.yaml`. Use `--iteration` / `--sprint` (e.g. `--sprint current`) to focus on current
iteration when the adapter supports it; sprint/iteration end date is shown when provided by adapter or
config (`standup.sprint_end_date`). A second table **Pending / open for commitment** lists unassigned
items (same scope); use `--show-unassigned`/`--no-show-unassigned` or `--unassigned-only`. Use
`--blockers-first` to sort items with blockers first; enable `show_priority` or `show_value` in standup
config for optional priority/value column (value-driven/SAFe). Optional standup summary
(yesterday/today/blockers) from item body; optionally post standup comment to linked issue via `--post`
when the adapter supports comments (e.g. GitHub).
**Interactive step-by-step review**: Use `--interactive` to select stories with arrow keys (questionary)
and view full detail (refine-like: description, acceptance criteria, standup fields, comments when adapter
supports); navigate with Next/Previous/Back to list/Exit. Use `--suggest-next` to show suggested next
item by value score (business_value / (story_points Γ— priority)).
**Copilot export**: Use `--copilot-export <path>` to write a summarized Markdown file of each story for
Copilot. Add `--comments` (alias `--annotations`) to include descriptions and comment annotations in
`--copilot-export` and `--summarize` outputs when the adapter supports `get_comments` (GitHub).
**Kanban**: omit iteration/sprint and use state + limit; unassigned = pullable work. **Scrum/SAFe**: use
`--sprint current` and optional priority/value. **Out of scope**: Sprint goal is in your board/sprint
settings (not displayed by CLI). Stale/at-risk flags (e.g. "no update in N days") are not in scopeβ€”use
last updated + blockers. Structured "blocked by" (link to another issue) is not in scope; only free-text
blockers are supported.
- **Dependency Management**: Track story-to-story and feature-to-feature dependencies
- **Prioritization**: Priority levels, ranking, and business value scoring
- **Sprint Planning**: Target sprint/release assignment and story point tracking
Expand Down Expand Up @@ -56,13 +78,19 @@ specfact backlog daily github \
# 4. Optional: interactive step-through, Copilot export, or standup summary prompt
specfact backlog daily github --interactive # step-through; detail view shows existing comments on each issue
# or
specfact backlog daily github --copilot-export ./standup.md
specfact backlog daily github --copilot-export ./standup.md --comments
# or
specfact backlog daily github --summarize # prompt to stdout for AI to generate standup summary
specfact backlog daily github --summarize --comments # prompt to stdout for AI to generate standup summary
specfact backlog daily github --summarize-to ./standup-prompt.md
```

Use the **`specfact.backlog-daily`** (or `specfact.daily`) slash prompt for interactive walkthrough with the DevOps team story-by-story (current focus, issues/open questions, discussion notes as comments). Default scope: **state=open**, **limit=20**; configure via `SPECFACT_STANDUP_*` or `.specfact/standup.yaml`. Use `--assignee me`, `--sprint current`, `--blockers-first`, `--interactive`, `--suggest-next`, `--copilot-export <path>`, `--summarize`, and `--summarize-to <path>` as needed. See [Tutorial: Daily Standup and Sprint Review](../getting-started/tutorial-daily-standup-sprint-review.md) for the full walkthrough.
Use the **`specfact.backlog-daily`** (or `specfact.daily`) slash prompt for interactive walkthrough with the
DevOps team story-by-story (current focus, issues/open questions, discussion notes as comments). Default
scope: **state=open**, **limit=20**; configure via `SPECFACT_STANDUP_*` or `.specfact/standup.yaml`. Use
`--assignee me`, `--sprint current`, `--blockers-first`, `--interactive`, `--suggest-next`,
`--copilot-export <path>`, `--summarize`, `--summarize-to <path>`, and `--comments`/`--annotations` as
needed. See [Tutorial: Daily Standup and Sprint Review](../getting-started/tutorial-daily-standup-sprint-review.md)
for the full walkthrough.

## Persona-Based Workflows

Expand Down
21 changes: 20 additions & 1 deletion docs/guides/devops-adapter-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,26 @@ SpecFact CLI supports **bidirectional synchronization** between OpenSpec change

- **Issue Creation**: Export OpenSpec change proposals as GitHub Issues (or other DevOps backlog items)
- **Progress Tracking**: Automatically detect code changes and add progress comments to issues
- **Standup Comments**: Use `specfact backlog daily --post` with `--yesterday`, `--today`, `--blockers` to post a standup summary as a comment on the linked issue (GitHub/ADO adapters that support comments). Standup config: set defaults via env (`SPECFACT_STANDUP_STATE`, `SPECFACT_STANDUP_LIMIT`, `SPECFACT_STANDUP_ASSIGNEE`, `SPECFACT_STANDUP_SPRINT_END`) or optional `.specfact/standup.yaml` (e.g. `default_state`, `limit`, `sprint`, `show_priority`, `suggest_next`). Iteration/sprint and sprint end date support depend on the adapter (ADO supports current iteration and iteration path; see adapter docs). Use `--blockers-first` and config `show_priority`/`show_value` for time-critical and value-driven standups. **Interactive review** (`--interactive`): step-through stories with arrow-key selection; detail view shows **existing comments annotated to each issue** when the adapter implements `get_comments(item)` (GitHub adapter supports it). **Value score / suggested next**: when BacklogItem has `story_points`, `business_value`, and `priority`, use `--suggest-next` or config `suggest_next` to show suggested next item (business_value / (story_points Γ— priority)). **Standup summary prompt** (`--summarize` or `--summarize-to PATH`): output a prompt (instruction + filter context + standup data) for slash command or Copilot to generate a standup summary. **Slash prompt** `specfact.backlog-daily` (or `specfact.daily`): use with IDE/Copilot for interactive team walkthrough story-by-story (current focus, issues/open questions, discussion notes as comments); prompt file at `resources/prompts/specfact.backlog-daily.md`. **Sprint goal** is stored in your board/sprint settings and is not displayed or edited by the CLI.
- **Standup Comments**: Use `specfact backlog daily --post` with `--yesterday`, `--today`, `--blockers` to post
a standup summary as a comment on the linked issue (GitHub/ADO adapters that support comments). Standup
config: set defaults via env (`SPECFACT_STANDUP_STATE`, `SPECFACT_STANDUP_LIMIT`,
`SPECFACT_STANDUP_ASSIGNEE`, `SPECFACT_STANDUP_SPRINT_END`) or optional `.specfact/standup.yaml`
(e.g. `default_state`, `limit`, `sprint`, `show_priority`, `suggest_next`). Iteration/sprint and sprint
end date support depend on the adapter (ADO supports current iteration and iteration path; see adapter
docs). Use `--blockers-first` and config `show_priority`/`show_value` for time-critical and value-driven
standups. **Interactive review** (`--interactive`): step-through stories with arrow-key selection; detail
view shows **existing comments annotated to each issue** when the adapter implements `get_comments(item)`
(GitHub adapter supports it). **Comment annotations in exports**: add `--comments` (alias
`--annotations`) to include descriptions and comment annotations in `--copilot-export` and
`--summarize`/`--summarize-to` outputs when the adapter supports fetching comments. **Value score /
suggested next**: when BacklogItem has `story_points`, `business_value`, and `priority`, use
`--suggest-next` or config `suggest_next` to show suggested next item (business_value / (story_points Γ—
priority)). **Standup summary prompt** (`--summarize` or `--summarize-to PATH`): output a prompt
(instruction + filter context + standup data) for slash command or Copilot to generate a standup summary.
**Slash prompt** `specfact.backlog-daily` (or `specfact.daily`): use with IDE/Copilot for interactive
team walkthrough story-by-story (current focus, issues/open questions, discussion notes as comments);
prompt file at `resources/prompts/specfact.backlog-daily.md`. **Sprint goal** is stored in your
board/sprint settings and is not displayed or edited by the CLI.
- **Content Sanitization**: Protect internal information when syncing to public repositories
- **Separate Repository Support**: Handle cases where OpenSpec proposals and source code are in different repositories

Expand Down
Loading
Loading