Review: Woodpecker pipeline missing timestamps for DORA metrics
Verdict: NEEDS_REFINEMENT
Board item #1296 — Forgejo issue
ldraney/landscaping-assistant#57. Type: Feature. Points: 2.Template Completeness
- [x] Type — Feature
- [x] Lineage — Standalone, related to #43 (observability parent)
- [x] Repo —
ldraney/landscaping-assistant - [x] User Story — present (developer wants timestamps for DORA metrics)
- [x] Context — present (null timestamps in Woodpecker API response)
- [x] File Targets — present (but inaccurate, see below)
- [ ] Feature Flag — MISSING. Section required by template-issue-feature. Infra work should specify "none" with rationale.
- [x] Acceptance Criteria — 3 items
- [x] Test Expectations — 2 items
- [x] Constraints — present
- [x] Checklist — present
- [x] Related — present
Traceability
- [ ] story:observability label — NO entry in project-landscaping-assistant user-stories section. [SCOPE] Create user story entry "observability" on project-landscaping-assistant user-stories section.
- [ ] story:dora label — NO entry in project-landscaping-assistant user-stories section. [SCOPE] Create user story entry "dora" on project-landscaping-assistant user-stories section.
- [x] arch:ci-pipeline label — arch-ci-pipeline note exists in pal-e-docs (covers shared Woodpecker pipeline pattern)
- [x] Forgejo issue — ldraney/landscaping-assistant#57, state: open
File Targets
- [ ]
.woodpecker.yml— ISSUE: Wrong extension. Actual file is.woodpecker.yaml. Additionally, pipeline YAML defines steps, not API response fields — timestamp population is a Woodpecker server behavior, unlikely fixable via pipeline config. - [ ] "Woodpecker server config" — ISSUE: Too vague. No concrete file path or repo specified. If this refers to Woodpecker Helm values or deployment config, it likely lives in
pal-e-platform(terraform/kustomize), not inlandscaping-assistant.
Repo Placement
Issue filed on
ldraney/landscaping-assistant, but the fix may require Woodpecker server-side changes (upgrade, config) which live in pal-e-platform. The .woodpecker.yaml in this repo defines pipeline steps, not server API behavior. If the root cause is a Woodpecker server version issue, the fix touches pal-e-platform, not this repo. The issue should clarify which repo(s) are affected, or acknowledge that the repo placement depends on root cause analysis.Dependencies
No blocking dependencies found on board-landscaping-assistant. Parent issue #43 (Observability & DORA metrics stack) is open but does not block this work. No items currently in in_progress or next_up are related to DORA/observability/pipeline timestamps.
Acceptance Criteria
3 AC items, all testable via Woodpecker MCP tools (
list_pipelines, get_pipeline_status). The test expectations correctly reference these tools. AC is reasonable and verifiable. Note: AC #3 ("DORA deployment frequency derivable from push-to-main pipeline history") is somewhat vague — "derivable" is not a binary pass/fail condition. Consider tightening to something like "pipeline history includes timestamps sufficient to calculate deploy count per time period."Blast Radius
If the fix involves a Woodpecker server upgrade or config change, it affects ALL repos using Woodpecker CI across the platform, not just landscaping-assistant. The
arch-ci-pipeline note documents the shared pipeline pattern used by basketball-api, pal-e-docs, westside-contracts, and other services. A server-side change should be validated against multiple repos. Existing DORA doc at docs/dora/pipeline-timing.md was built from manual log scraping — this ticket would enable programmatic collection.Decomposition Assessment
2 file targets (one incorrect), 3 acceptance criteria, 2 story points. Fits in a single agent pass. No decomposition needed.
Recommendation
[BODY]Fix file extension:.woodpecker.yml→.woodpecker.yaml[BODY]Add Feature Flag section with value "none" and rationale "CI/infra investigation, no user-visible behavior"[BODY]Replace vague "Woodpecker server config" with concrete path or repo reference. If unknown, state: "Root cause TBD — may require changes in pal-e-platform (Woodpecker Helm values / deployment config)"[BODY]Tighten AC #3 from "derivable" to a testable condition[SCOPE]Create user story entry "observability" on project-landscaping-assistant user-stories section[SCOPE]Create user story entry "dora" on project-landscaping-assistant user-stories section