Skip to content

docs: journey-traceability + iconography implementation#51

Merged
KooshaPari merged 1 commit into
mainfrom
feat/journey-impl
May 1, 2026
Merged

docs: journey-traceability + iconography implementation#51
KooshaPari merged 1 commit into
mainfrom
feat/journey-impl

Conversation

@KooshaPari
Copy link
Copy Markdown
Owner

@KooshaPari KooshaPari commented May 1, 2026

User description

Journey traceability docs + Fluent/Material iconography SVGs + CI gate. Stub manifests — populate to pass CI.

Note

Medium Risk
Adds a new GitHub Actions gate that installs external tooling and can fail all PRs/pushes when journey manifests are missing or invalid, which may block CI unexpectedly. Also introduces new doc/assets only, with minimal runtime risk beyond the CI workflow behavior.

Overview
Introduces a new Journey Gate GitHub Actions workflow (.github/workflows/journey-gate.yml) that installs tesseract and the phenotype-journey CLI, discovers manifest.verified.json files, validates them, and runs assertion checks (optionally with live verification via ANTHROPIC_API_KEY). The workflow is currently configured to fail in stub mode when no verified manifests are present.

Adds initial journey traceability documentation (docs/operations/journey-traceability.md), a stub journey manifest (docs/journeys/manifests/main-flow.json), and an iconography spec plus new Fluent/Material SVG icon assets under docs/operations/iconography/.

Reviewed by Cursor Bugbot for commit 3918eb0. Bugbot is set up for automated code reviews on this repo. Configure here.


CodeAnt-AI Description

Add journey traceability docs, icon rules, and a manifest check in CI

What Changed

  • Added guidance for which user flows should be tracked, where journey manifests belong, and when to capture keyframes
  • Added iconography rules for supported styles, sizing, and accessibility
  • Added a starter journey manifest for the main flow
  • Added a Journey Gate workflow that checks for journey manifests, validates them, and blocks merges when manifests are missing or invalid

Impact

✅ Clearer journey documentation
✅ Consistent icon usage
✅ Fewer missing-manifest merges

🔄 Retrigger CodeAnt AI Review

Details

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 1, 2026 15:06
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 1, 2026

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

Warning

Rate limit exceeded

@KooshaPari has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 37 minutes and 2 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e327eddd-9509-4066-b576-b9dc70b5e74d

📥 Commits

Reviewing files that changed from the base of the PR and between d8d7187 and 3918eb0.

⛔ Files ignored due to path filters (20)
  • docs/operations/iconography/fluent/branch.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/dashboard.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/home.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/package.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/plugin.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/search.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/settings.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/terminal.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/user.svg is excluded by !**/*.svg
  • docs/operations/iconography/fluent/workflow.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/branch.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/dashboard.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/home.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/package.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/plugin.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/search.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/settings.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/terminal.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/user.svg is excluded by !**/*.svg
  • docs/operations/iconography/material/workflow.svg is excluded by !**/*.svg
📒 Files selected for processing (4)
  • .github/workflows/journey-gate.yml
  • docs/journeys/manifests/main-flow.json
  • docs/operations/iconography/SPEC.md
  • docs/operations/journey-traceability.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/journey-impl
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch feat/journey-impl

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 37 minutes and 2 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 1, 2026

@KooshaPari KooshaPari merged commit 538ba75 into main May 1, 2026
15 of 18 checks passed
@KooshaPari KooshaPari deleted the feat/journey-impl branch May 1, 2026 15:08
@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label May 1, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 1, 2026

CodeAnt AI finished reviewing your PR.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 3 potential issues.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit 3918eb0. Configure here.

- name: Run assertions
env:
MANIFEST_LIST: ${{ steps.discover.outputs.MANIFEST_LIST }}
PHENOTYPE_JOURNEY_STRICT: ${{ inputs.strict_mode && 'true' || 'false' }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strict mode silently disabled on push/PR triggers

High Severity

The step-level PHENOTYPE_JOURNEY_STRICT env on the "Run assertions" step uses ${{ inputs.strict_mode && 'true' || 'false' }}, which evaluates to 'false' on push and pull_request events because inputs.strict_mode is empty/falsy when the trigger isn't workflow_dispatch. This overrides the top-level env (which correctly defaults to 'true'), causing assertions to run in non-strict mode on the most common CI triggers. Violations won't fail the build, contradicting the documented behavior.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3918eb0. Configure here.

name: Journey Gate — No Manifests Found
runs-on: ubuntu-latest
needs: journey-gate
if: needs.journey-gate.result == 'failure' && needs.journey-gate.outputs.MANIFEST_COUNT == '0'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing job outputs makes stub-mode job unreachable

Medium Severity

The stub-mode job condition checks needs.journey-gate.outputs.MANIFEST_COUNT == '0', but the journey-gate job never declares a job-level outputs: mapping. In GitHub Actions, step outputs are not automatically promoted to job outputs — they must be explicitly mapped via jobs.<id>.outputs. This means MANIFEST_COUNT is always empty, so the condition is never satisfied and the stub-mode job never runs.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3918eb0. Configure here.

-not -path "*/target/*" \
-not -path "*/.git/*" \
-not -path "*/vendor/*" \
2>/dev/null | sort)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workflow dispatch manifest_path input is completely non-functional

Medium Severity

The manifest_path workflow_dispatch input (line 32) is never mapped to an environment variable, so MANIFEST_PATH on line 105 is always unset. Additionally, the resulting GLOB variable is only printed—it's never passed to the find command, which hardcodes -name "manifest.verified.json". Users who customize manifest_path via the Actions UI will see their value echoed but the search will ignore it entirely.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3918eb0. Configure here.

@KooshaPari KooshaPari review requested due to automatic review settings May 1, 2026 15:27
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 5, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 5, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 5, 2026

Sequence Diagram

This PR adds a Journey Gate GitHub Actions workflow that enforces the presence and validation of verified journey manifests, with strict assertions and optional live verification, and fails builds in stub mode when no manifests are found.

sequenceDiagram
    participant Developer
    participant GitHub
    participant JourneyGate
    participant PhenotypeCLI
    participant JourneyManifests
    participant AnthropicAPI

    Developer->>GitHub: Push or open pull request
    GitHub->>JourneyGate: Trigger Journey Gate workflow
    JourneyGate->>JourneyGate: Install tesseract and phenotype journey CLI
    JourneyGate->>JourneyManifests: Discover verified manifest files

    alt Manifests found
        JourneyGate->>PhenotypeCLI: Validate and assert manifests in strict mode
        opt Live verification enabled
            JourneyGate->>AnthropicAPI: Run live verification for manifests
        end
        JourneyGate-->>GitHub: Report CI success
    else No manifests found
        JourneyGate-->>Developer: Fail stub mode and print guidance
    end
Loading

Generated by CodeAnt AI

Comment on lines +32 to +110
manifest_path:
description: 'Glob pattern for manifests (default: "**/manifest.verified.json")'
required: false
default: '**/manifest.verified.json'
strict_mode:
description: 'Run assertions in --strict mode (fail on violations)'
required: false
default: 'true'
type: boolean
live_verification:
description: 'Use --live mode (requires ANTHROPIC_API_KEY secret)'
required: false
default: 'false'
type: boolean

env:
PHENOTYPE_JOURNEY_STRICT: ${{ inputs.strict_mode || 'true' }}

jobs:
journey-gate:
name: Journey Verification
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout
uses: actions/checkout@v4

# ---------------------------------------------------------------------
# 1. Install runtime dependencies
# ---------------------------------------------------------------------
- name: Install tesseract OCR
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq tesseract-ocr \
|| { echo "WARNING: tesseract install failed — assertions will skip"; }

- name: Check tesseract availability
run: |
if command -v tesseract &>/dev/null; then
echo "tesseract: $(tesseract --version | head -1)"
else
echo "tesseract: NOT FOUND — OCR assertions will be skipped"
fi

# ---------------------------------------------------------------------
# 2. Install phenotype-journey CLI
# ---------------------------------------------------------------------
- name: Install phenotype-journey
run: |
if command -v phenotype-journey &>/dev/null; then
echo "phenotype-journey: $(phenotype-journey --version 2>/dev/null || phenotype-journey --help 2>&1 | head -1)"
else
echo "Installing phenotype-journey..."
# Install via cargo if available, else download binary
if command -v cargo &>/dev/null; then
cargo install phenotype-journey --locked \
|| { echo "ERROR: phenotype-journey install failed"; exit 1; }
else
# Download latest release binary (adjust URL as needed)
curl -fsSL https://github.com/KooshaPari/phenotype-journeys/releases/latest/download/phenotype-journey-x86_64-unknown-linux-gnu \
-o /usr/local/bin/phenotype-journey \
&& chmod +x /usr/local/bin/phenotype-journey \
|| { echo "ERROR: phenotype-journey download failed"; exit 1; }
fi
fi

# ---------------------------------------------------------------------
# 3. Find all manifest.verified.json files
# ---------------------------------------------------------------------
- name: Discover manifests
id: discover
run: |
GLOB="${MANIFEST_PATH:-**/manifest.verified.json}"
echo "Glob pattern: $GLOB"

MANIFESTS=$(find . \
-name "manifest.verified.json" \
-not -path "*/node_modules/*" \
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The workflow defines a manifest_path workflow_dispatch input but the discovery step ignores it, instead always running find . -name "manifest.verified.json", so configuring a custom manifest location has no effect.

Suggestion: Map the manifest_path input into an environment variable (e.g., MANIFEST_PATH) and use it in the discovery logic (e.g., via the GLOB variable) so manual runs and repo-specific layouts can actually control which manifests are validated.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/journey-gate.yml
**Line:** 32:110
**Comment:**
	*HIGH: The workflow defines a `manifest_path` workflow_dispatch input but the discovery step ignores it, instead always running `find . -name "manifest.verified.json"`, so configuring a custom manifest location has no effect.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 5, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 7, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

Sequence Diagram

This PR adds a GitHub Actions Journey Gate that installs journey tooling, discovers journey manifests, validates them, and enforces assertions, failing in stub mode when no verified manifests exist.

sequenceDiagram
    participant Developer
    participant GitHubActions
    participant JourneyGate
    participant JourneyCLI

    Developer->>GitHubActions: Push or open PR
    GitHubActions->>JourneyGate: Run Journey Gate workflow
    JourneyGate->>JourneyGate: Install tesseract and phenotype-journey
    JourneyGate->>JourneyCLI: Discover and validate manifests
    JourneyCLI-->>JourneyGate: Manifest list and validation result

    alt Manifests found and valid
        JourneyGate->>JourneyCLI: Run assertions and optional live verify
        JourneyCLI-->>JourneyGate: All checks pass
        JourneyGate-->>GitHubActions: Mark Journey Gate check as passed
    else No manifests
        JourneyGate-->>GitHubActions: Fail in stub mode and emit guidance
    end
Loading

Generated by CodeAnt AI

Comment on lines +32 to +35
manifest_path:
description: 'Glob pattern for manifests (default: "**/manifest.verified.json")'
required: false
default: '**/manifest.verified.json'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The workflow_dispatch input manifest_path is defined but never used in the discovery step, which always searches for manifest.verified.json via a hardcoded find command, so manually providing a custom manifest path has no effect.

Suggestion: Wire the manifest_path workflow input into the discovery logic (for example by mapping it to an environment variable and using it in the find/glob expression), or remove the input entirely to avoid exposing a non-functional configuration option.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/journey-gate.yml
**Line:** 32:35
**Comment:**
	*HIGH: The `workflow_dispatch` input `manifest_path` is defined but never used in the discovery step, which always searches for `manifest.verified.json` via a hardcoded `find` command, so manually providing a custom manifest path has no effect.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 7, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

Sequence Diagram

This PR adds a GitHub Actions Journey Gate that runs on pushes and pull requests, installs required tooling, discovers journey manifests, validates them, and either fails in stub mode when none exist or enforces schema and assertion checks when they do.

sequenceDiagram
    participant GitHub
    participant JourneyGateWorkflow
    participant RepoManifests
    participant PhenotypeCLI

    GitHub->>JourneyGateWorkflow: Trigger workflow on push or pull request
    JourneyGateWorkflow->>JourneyGateWorkflow: Install tesseract and phenotype journey CLI
    JourneyGateWorkflow->>RepoManifests: Search for manifest verified files

    alt No manifests found
        JourneyGateWorkflow-->>GitHub: Fail gate with stub mode notice to add manifests
    else Manifests found
        JourneyGateWorkflow->>PhenotypeCLI: Validate each manifest against schema
        JourneyGateWorkflow->>PhenotypeCLI: Run assertions in strict or non strict mode
        opt Live verification enabled
            JourneyGateWorkflow->>PhenotypeCLI: Run live verification using API key
        end
        JourneyGateWorkflow-->>GitHub: Report journey gate pass or fail summary
    end
Loading

Generated by CodeAnt AI

Comment on lines +32 to +110
manifest_path:
description: 'Glob pattern for manifests (default: "**/manifest.verified.json")'
required: false
default: '**/manifest.verified.json'
strict_mode:
description: 'Run assertions in --strict mode (fail on violations)'
required: false
default: 'true'
type: boolean
live_verification:
description: 'Use --live mode (requires ANTHROPIC_API_KEY secret)'
required: false
default: 'false'
type: boolean

env:
PHENOTYPE_JOURNEY_STRICT: ${{ inputs.strict_mode || 'true' }}

jobs:
journey-gate:
name: Journey Verification
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout
uses: actions/checkout@v4

# ---------------------------------------------------------------------
# 1. Install runtime dependencies
# ---------------------------------------------------------------------
- name: Install tesseract OCR
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq tesseract-ocr \
|| { echo "WARNING: tesseract install failed — assertions will skip"; }

- name: Check tesseract availability
run: |
if command -v tesseract &>/dev/null; then
echo "tesseract: $(tesseract --version | head -1)"
else
echo "tesseract: NOT FOUND — OCR assertions will be skipped"
fi

# ---------------------------------------------------------------------
# 2. Install phenotype-journey CLI
# ---------------------------------------------------------------------
- name: Install phenotype-journey
run: |
if command -v phenotype-journey &>/dev/null; then
echo "phenotype-journey: $(phenotype-journey --version 2>/dev/null || phenotype-journey --help 2>&1 | head -1)"
else
echo "Installing phenotype-journey..."
# Install via cargo if available, else download binary
if command -v cargo &>/dev/null; then
cargo install phenotype-journey --locked \
|| { echo "ERROR: phenotype-journey install failed"; exit 1; }
else
# Download latest release binary (adjust URL as needed)
curl -fsSL https://github.com/KooshaPari/phenotype-journeys/releases/latest/download/phenotype-journey-x86_64-unknown-linux-gnu \
-o /usr/local/bin/phenotype-journey \
&& chmod +x /usr/local/bin/phenotype-journey \
|| { echo "ERROR: phenotype-journey download failed"; exit 1; }
fi
fi

# ---------------------------------------------------------------------
# 3. Find all manifest.verified.json files
# ---------------------------------------------------------------------
- name: Discover manifests
id: discover
run: |
GLOB="${MANIFEST_PATH:-**/manifest.verified.json}"
echo "Glob pattern: $GLOB"

MANIFESTS=$(find . \
-name "manifest.verified.json" \
-not -path "*/node_modules/*" \
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The workflow_dispatch.inputs.manifest_path input is declared but never used: the Discover manifests step builds GLOB from MANIFEST_PATH (which is never set) and immediately ignores it by hard-coding find . -name "manifest.verified.json", so callers cannot override manifest discovery as documented.

Suggestion: Wire the manifest_path input into discovery by mapping inputs.manifest_path to an environment variable (e.g., MANIFEST_PATH) and using the resulting glob in the find invocation, or remove the unused input if configurability is not intended.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/journey-gate.yml
**Line:** 32:110
**Comment:**
	*HIGH: The `workflow_dispatch.inputs.manifest_path` input is declared but never used: the Discover manifests step builds `GLOB` from `MANIFEST_PATH` (which is never set) and immediately ignores it by hard-coding `find . -name "manifest.verified.json"`, so callers cannot override manifest discovery as documented.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 8, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 8, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 8, 2026

Sequence Diagram

This PR adds a Journey Gate GitHub Actions workflow that runs on pushes and pull requests to main, installs the journey tooling, and enforces that verified journey manifests exist and pass validation and assertions before CI can succeed.

sequenceDiagram
    participant Developer
    participant CI as Journey Gate workflow
    participant JourneyCLI as Journey CLI

    Developer->>CI: Push or open pull request to main
    CI->>CI: Install tesseract and journey CLI
    CI->>JourneyCLI: Discover manifest.verified.json files

    alt Manifests found
        CI->>JourneyCLI: Validate manifests and run strict assertions
        JourneyCLI-->>CI: All checks pass
        CI-->>Developer: Mark Journey Gate check as passed
    else No manifests
        JourneyCLI-->>CI: No manifests discovered
        CI-->>Developer: Fail in stub mode and prompt to add manifests
Loading

Generated by CodeAnt AI

Comment on lines +237 to +238
needs: journey-gate
if: needs.journey-gate.result == 'failure' && needs.journey-gate.outputs.MANIFEST_COUNT == '0'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The stub-mode job's condition references needs.journey-gate.outputs.MANIFEST_COUNT, but the journey-gate job never defines any outputs, so the stub-mode "no manifests found" branch will never run even when there are zero manifests.

Suggestion: Define MANIFEST_COUNT as a job-level output on journey-gate (mapping from steps.discover.outputs.MANIFEST_COUNT) and have stub-mode read that output, or inline the stub notice into the failing journey-gate job when no manifests are found.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/journey-gate.yml
**Line:** 237:238
**Comment:**
	*HIGH: The `stub-mode` job's condition references `needs.journey-gate.outputs.MANIFEST_COUNT`, but the `journey-gate` job never defines any outputs, so the stub-mode "no manifests found" branch will never run even when there are zero manifests.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 8, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 8, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 8, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 8, 2026

Sequence Diagram

This PR adds a Journey Gate GitHub Actions workflow that enforces journey manifest validation on pushes and pull requests, failing builds when manifests are missing or invalid and guiding teams to add proper journey coverage.

sequenceDiagram
    participant Developer
    participant GitHubActions as GitHub Actions
    participant JourneyGate as Journey Gate job
    participant PhenotypeCLI as Phenotype journey CLI
    participant StubJob as Stub notice job

    Developer->>GitHubActions: Push or open pull request
    GitHubActions->>JourneyGate: Run Journey Gate workflow
    JourneyGate->>PhenotypeCLI: Install and check CLI and OCR tools
    JourneyGate->>JourneyGate: Discover journey manifest files

    alt Manifests found
        JourneyGate->>PhenotypeCLI: Validate manifests and run assertions
        PhenotypeCLI-->>JourneyGate: Return validation and assertion results
        JourneyGate-->>GitHubActions: Report gate pass or fail
    else No manifests found
        JourneyGate-->>GitHubActions: Fail stub mode when no manifests
        GitHubActions->>StubJob: Run stub job to print guidance
    end
Loading

Generated by CodeAnt AI

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 8, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 9, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

Sequence Diagram

This diagram shows how the new Journey Gate GitHub Actions workflow enforces journey manifest validation and assertions on pushes and pull requests, including its stub-mode behavior when no manifests are present.

sequenceDiagram
    participant Developer
    participant GitHubActions
    participant JourneyGate
    participant JourneyCLI
    participant JourneyManifests

    Developer->>GitHubActions: Push or open pull request
    GitHubActions->>JourneyGate: Trigger Journey Gate workflow
    JourneyGate->>JourneyGate: Install tesseract and Journey CLI
    JourneyGate->>JourneyCLI: Discover journey manifests

    alt Manifests found
        JourneyGate->>JourneyCLI: Validate manifests and run assertions
        JourneyCLI-->>JourneyGate: All manifests valid and assertions passed
        JourneyGate-->>GitHubActions: Mark Journey Gate check as passed
    else No manifests found
        JourneyGate-->>GitHubActions: Fail in stub mode and prompt to add manifests
    end
Loading

Generated by CodeAnt AI

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant