You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a GitHub Actions workflow and the repo-local validation it needs to protect DataOps planning docs, process docs, templates, metadata, and V1 goal/JTBD references before source-system imports and unified-platform changes land on main.
The workflow should be stronger than a docs-only prose check. It should validate the planning/process contract that keeps DataOps aligned with the AI Shipping Labs-style lifecycle, plus the technical references that connect docs, templates, work-engine tasks, search, and the V1 operator goal.
Expected implementation areas:
Add a planning/docs CI workflow, likely .github/workflows/validate-planning-docs.yml, with read-only permissions and workflow_dispatch.
Trigger it for changes to planning/process/metadata surfaces, including _docs/**, docs/**, templates/**, content/tasks/templates/**, .goal-v1.md, PROJECT_PLAN.md, PORTAL_ANALYSIS.md, README.md, related tests/scripts, and the workflow itself.
Add or extend automated validation under tests/, scripts/, or the existing docs-app test suite as appropriate. Prefer normal repo test commands over one-off shell assertions embedded only in YAML.
Validate internal Markdown links and repo-relative references for the protected docs set. External URLs should not make CI flaky unless the implementation uses a deliberate, bounded checker.
Validate stable metadata needed by the unified operations platform: document IDs/aliases, related_docs, task-template frontmatter, template references, and docs registry/search behavior where those surfaces are touched.
Protect _docs/PROCESS.md from weaker process drift by checking for the required lifecycle gates and role ownership: orchestrator intake, PM grooming, SWE implementation without commit, Tester verification with real tests/screenshots where relevant, PM acceptance, local merge to main, push, and On-Call CI/CD monitoring.
Protect .goal-v1.md and docs/operations-manager-platform-jtbd.md references so the V1 goal, JTBD, and referenced files remain present and linkable.
Keep this CI path separate from deployment and deployed cache refresh. It should not require AWS credentials, mutate production state, or depend on GitHub PRs as the process source of truth.
Do not use stylint or user-facing prose tooling for these internal process docs unless Alexey explicitly asks for prose polish.
docs/**, especially docs/local-development.md, docs/operations-manager-platform-jtbd.md, runtime/data-model docs, and repository-structure docs
templates/**
content/tasks/templates/**
lambda-functions/src/lambda_functions/doc_registry.py, search-index tooling, docs-app tests, or new planning-doc validation tests if needed
work-engine/docs/** and work-engine template contracts where referenced by the checks
Acceptance Criteria
A GitHub Actions workflow exists for planning/process/docs validation with read-only permissions, workflow_dispatch, and path filters that cover the protected planning docs, process docs, templates, metadata, goal/JTBD references, and the workflow itself.
The workflow runs concrete repo validation, not prose-only linting. At minimum it runs the new planning/docs validation command, docs metadata/registry coverage, and a search-index build or equivalent search smoke check for template/doc metadata surfaces.
Internal Markdown links and repo-relative references in the protected docs set fail CI when they point at missing files or missing required reference targets. External links are either ignored or checked only with a deliberate non-flaky policy documented in the implementation.
_docs/PROCESS.md has automated guardrails for the AI Shipping Labs-strength lifecycle controls listed in Scope. The guard must fail if the process drops or weakens the required gates/roles, even though the original sibling repo is not available in GitHub Actions.
.goal-v1.md reference files and the Operations Manager JTBD reference remain present and linkable; CI fails if a referenced repo-local file or directory is removed without updating the goal/JTBD contract.
Task-template and process-doc metadata that feeds the unified operations platform is covered: stable IDs/aliases, related_docs, task-template frontmatter, and template/doc registry behavior are validated by tests or a script with test coverage.
The workflow does not deploy, refresh the deployed docs cache, assume AWS credentials, require production secrets, or mutate GitHub/content/runtime state.
The implementation explicitly avoids stylint/user-facing prose tooling for internal process docs.
Local documentation is updated only if needed to name the new command/workflow in the existing local-development command matrix. Do not rewrite process docs or planning docs beyond what is necessary for the CI contract.
The issue checkboxes are updated by SWE/Tester as the work passes implementation and verification, following _docs/PROCESS.md.
Given: a change edits _docs/**, docs/**, .goal-v1.md, PROJECT_PLAN.md, PORTAL_ANALYSIS.md, README.md, templates/**, or content/tasks/templates/**
When: the planning/docs validation workflow runs
Then: missing repo-local Markdown links, missing referenced files/directories, and broken goal/JTBD references fail the job with actionable output.
Scenario: Process lifecycle controls cannot be weakened silently
Given: _docs/PROCESS.md is changed
When: the planning/docs validation command runs
Then: it fails if required lifecycle controls are removed or materially weakened: PM grooming, SWE no-commit-before-review, Tester real verification, PM acceptance, local merge to main, push, On-Call CI/CD monitoring, no PR merge workflow, and no stylint requirement for internal process docs.
Given: task templates, process docs, or metadata used by the portal/work-engine/search contract are changed
When: the planning/docs validation workflow runs
Then: stable document IDs/aliases, related_docs, task-template frontmatter, and docs registry/search behavior are validated so task-to-doc and template-to-doc references do not drift.
Scenario: CI is safe for internal process changes
Given: a process-doc-only or planning-doc-only change lands on main
When: GitHub Actions runs the new workflow
Then: the job uses read-only repository access, does not assume AWS OIDC credentials, does not deploy, and does not refresh the deployed docs cache.
Scenario: Local verification matches CI
Given: a SWE has implemented the workflow and validation command
When: Tester runs the required verification commands locally
Then: the same checks that protect planning/docs CI pass locally, and any intentionally skipped broader command is explained against _docs/PROCESS.md and docs/local-development.md.
Out of Scope
Rewriting _docs/PROCESS.md or weakening the AI Shipping Labs parity contract.
Broad content cleanup across all content/** process docs.
Migrating source repos or modifying ../dtc-operations, ../datatasks, or ../podcast-assistant.
Adding a PR-based development process or requiring gh pr create / gh pr merge.
Live AWS deployment, deployed cache refresh, production Lambda invocation, GitHub content writes, or any check requiring secrets.
Stylint, prose-polish, or user-facing content-style enforcement for internal process docs.
Building a full external-link crawler unless separately scoped.
Dependencies
Existing docs/process expectations in _docs/PROCESS.md and docs/local-development.md.
Existing CI workflows:
.github/workflows/deploy-dataops-v1.yml
.github/workflows/validate-dataops-content.yml
.github/workflows/assistant-ci.yml
Existing validation commands for docs app, search index, and work-engine checks.
GitHub Actions cannot access ../ai-shipping-labs/_docs/PROCESS.md, so parity automation must use repo-local required-control guardrails. Local reviewer parity inspection against the sibling source process remains a manual verification step only if _docs/PROCESS.md itself is changed.
uv run --with pytest python -m pytest tests/planning_docs
If the implementation uses a different path/name for the new planning-doc validation tests, update this issue before handoff and use that exact command in Tester evidence.
Build the content/search index because this issue protects template/doc metadata and search references:
cd lambda-functions
uv run --extra search python -m lambda_functions.build_search_index \
--docs-dir ../content \
--output ../.tmp/dataops-content-search.index
Run work-engine contract checks if the implementation touches work-engine/**, content/tasks/templates/**, root work-engine package wrappers, or template/task metadata behavior:
npm --prefix work-engine test
npm --prefix work-engine run typecheck
npm --prefix work-engine run build
For workflow YAML changes, inspect the changed workflow paths and confirm the local commands above match the workflow steps. Do not run live AWS deploy/cache-refresh checks for this issue.
Blockers
None known.
Do not block on live GitHub Actions completion before implementation handoff; On-Call monitoring happens after approved work is committed, locally merged to main, and pushed.
If the implementation discovers that a required check needs production credentials, external accounts, or live GitHub/AWS writes, stop and re-scope that check as [HUMAN] or out of scope before continuing.
Create CI workflow for planning and docs checks
Status: pending
Tags:
docs,process-docs,infra,testing,P1Depends on: None
Blocks: None
Scope
Add a GitHub Actions workflow and the repo-local validation it needs to protect DataOps planning docs, process docs, templates, metadata, and V1 goal/JTBD references before source-system imports and unified-platform changes land on
main.The workflow should be stronger than a docs-only prose check. It should validate the planning/process contract that keeps DataOps aligned with the AI Shipping Labs-style lifecycle, plus the technical references that connect docs, templates, work-engine tasks, search, and the V1 operator goal.
Expected implementation areas:
.github/workflows/validate-planning-docs.yml, with read-only permissions andworkflow_dispatch._docs/**,docs/**,templates/**,content/tasks/templates/**,.goal-v1.md,PROJECT_PLAN.md,PORTAL_ANALYSIS.md,README.md, related tests/scripts, and the workflow itself.tests/,scripts/, or the existing docs-app test suite as appropriate. Prefer normal repo test commands over one-off shell assertions embedded only in YAML.related_docs, task-template frontmatter, template references, and docs registry/search behavior where those surfaces are touched._docs/PROCESS.mdfrom weaker process drift by checking for the required lifecycle gates and role ownership: orchestrator intake, PM grooming, SWE implementation without commit, Tester verification with real tests/screenshots where relevant, PM acceptance, local merge tomain, push, and On-Call CI/CD monitoring..goal-v1.mdanddocs/operations-manager-platform-jtbd.mdreferences so the V1 goal, JTBD, and referenced files remain present and linkable.Affected areas:
.github/workflows/**_docs/PROCESS.md,_docs/MERGE_PLAN.md,_docs/import-log.md.goal-v1.md,PROJECT_PLAN.md,PORTAL_ANALYSIS.md,README.mddocs/**, especiallydocs/local-development.md,docs/operations-manager-platform-jtbd.md, runtime/data-model docs, and repository-structure docstemplates/**content/tasks/templates/**lambda-functions/src/lambda_functions/doc_registry.py, search-index tooling, docs-app tests, or new planning-doc validation tests if neededwork-engine/docs/**and work-engine template contracts where referenced by the checksAcceptance Criteria
workflow_dispatch, and path filters that cover the protected planning docs, process docs, templates, metadata, goal/JTBD references, and the workflow itself._docs/PROCESS.mdhas automated guardrails for the AI Shipping Labs-strength lifecycle controls listed in Scope. The guard must fail if the process drops or weakens the required gates/roles, even though the original sibling repo is not available in GitHub Actions..goal-v1.mdreference files and the Operations Manager JTBD reference remain present and linkable; CI fails if a referenced repo-local file or directory is removed without updating the goal/JTBD contract.related_docs, task-template frontmatter, and template/doc registry behavior are validated by tests or a script with test coverage._docs/PROCESS.md.Test Scenarios
Scenario: Planning-doc workflow catches broken internal references
Given: a change edits
_docs/**,docs/**,.goal-v1.md,PROJECT_PLAN.md,PORTAL_ANALYSIS.md,README.md,templates/**, orcontent/tasks/templates/**When: the planning/docs validation workflow runs
Then: missing repo-local Markdown links, missing referenced files/directories, and broken goal/JTBD references fail the job with actionable output.
Scenario: Process lifecycle controls cannot be weakened silently
Given:
_docs/PROCESS.mdis changedWhen: the planning/docs validation command runs
Then: it fails if required lifecycle controls are removed or materially weakened: PM grooming, SWE no-commit-before-review, Tester real verification, PM acceptance, local merge to
main, push, On-Call CI/CD monitoring, no PR merge workflow, and no stylint requirement for internal process docs.Scenario: Unified-platform metadata remains executable
Given: task templates, process docs, or metadata used by the portal/work-engine/search contract are changed
When: the planning/docs validation workflow runs
Then: stable document IDs/aliases,
related_docs, task-template frontmatter, and docs registry/search behavior are validated so task-to-doc and template-to-doc references do not drift.Scenario: CI is safe for internal process changes
Given: a process-doc-only or planning-doc-only change lands on
mainWhen: GitHub Actions runs the new workflow
Then: the job uses read-only repository access, does not assume AWS OIDC credentials, does not deploy, and does not refresh the deployed docs cache.
Scenario: Local verification matches CI
Given: a SWE has implemented the workflow and validation command
When: Tester runs the required verification commands locally
Then: the same checks that protect planning/docs CI pass locally, and any intentionally skipped broader command is explained against
_docs/PROCESS.mdanddocs/local-development.md.Out of Scope
_docs/PROCESS.mdor weakening the AI Shipping Labs parity contract.content/**process docs.../dtc-operations,../datatasks, or../podcast-assistant.gh pr create/gh pr merge.Dependencies
_docs/PROCESS.mdanddocs/local-development.md..github/workflows/deploy-dataops-v1.yml.github/workflows/validate-dataops-content.yml.github/workflows/assistant-ci.yml../ai-shipping-labs/_docs/PROCESS.md, so parity automation must use repo-local required-control guardrails. Local reviewer parity inspection against the sibling source process remains a manual verification step only if_docs/PROCESS.mditself is changed.Required Verification Commands
Run from the repo root unless noted:
If the implementation uses a different path/name for the new planning-doc validation tests, update this issue before handoff and use that exact command in Tester evidence.
Build the content/search index because this issue protects template/doc metadata and search references:
cd lambda-functions uv run --extra search python -m lambda_functions.build_search_index \ --docs-dir ../content \ --output ../.tmp/dataops-content-search.indexRun work-engine contract checks if the implementation touches
work-engine/**,content/tasks/templates/**, root work-engine package wrappers, or template/task metadata behavior:npm --prefix work-engine test npm --prefix work-engine run typecheck npm --prefix work-engine run buildFor workflow YAML changes, inspect the changed workflow paths and confirm the local commands above match the workflow steps. Do not run live AWS deploy/cache-refresh checks for this issue.
Blockers
main, and pushed.[HUMAN]or out of scope before continuing.