Skip to content

Move legacy .agent content under .github - #162

Merged
groupthinking merged 4 commits into
mainfrom
copilot/move-agent-files-to-github
May 27, 2026
Merged

Move legacy .agent content under .github#162
groupthinking merged 4 commits into
mainfrom
copilot/move-agent-files-to-github

Conversation

Copilot AI commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

This PR consolidates legacy assistant configuration out of the repo root by relocating .agent into .github, aligning these files with the repository’s GitHub-owned metadata and config layout.

  • Directory relocation

    • Moves the full legacy tree from .agent/ to .github/agent/
    • Preserves the existing substructure to keep churn low:
      • rules/
      • tasks/
      • plans/
      • workflows/
      • pre-session.sh
  • Reference cleanup

    • Updates embedded path references that still pointed at the old .agent/... locations
    • Corrects a stale workflow link to the existing video-intent-validation.md rule file
  • Shared doc hygiene

    • Removes a user-specific absolute filesystem path from shared agent guidance
-.agent/workflows/video-analysis.md
+.github/agent/workflows/video-analysis.md

-Based on the rules in `.agent/rules/video-prompt.md`:
+Based on the rules in `.github/agent/rules/video-intent-validation.md`:

Copilot AI and others added 3 commits April 1, 2026 07:50
Agent-Logs-Url: https://github.com/groupthinking/EventRelay/sessions/8e79c6e5-9755-40a2-b8b0-73b9ff75249e

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>
Agent-Logs-Url: https://github.com/groupthinking/EventRelay/sessions/8e79c6e5-9755-40a2-b8b0-73b9ff75249e

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>
Agent-Logs-Url: https://github.com/groupthinking/EventRelay/sessions/8e79c6e5-9755-40a2-b8b0-73b9ff75249e

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>
@vercel

vercel Bot commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v0-uvai Error Error Apr 10, 2026 3:07am

Request Review

@github-actions

Copy link
Copy Markdown

🔍 PR Validation

⚠️ PR title should follow conventional commits format

@github-actions

github-actions Bot commented Apr 10, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 05c3b56.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

@coderabbitai

coderabbitai Bot commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

Let me pull up the PR details and review comments to understand exactly which issue needs to be fixed.


🏁 Script executed:

#!/bin/bash
# Get all review comments on PR `#162`
gh pr view 162 --repo groupthinking/EventRelay --json reviews,comments,body

echo "---REVIEW COMMENTS---"
gh api repos/groupthinking/EventRelay/pulls/162/comments --jq '.[] | {body: .body, path: .path, line: .line, diff_hunk: .diff_hunk}'

echo "---ISSUE COMMENTS---"
gh api repos/groupthinking/EventRelay/issues/162/comments --jq '.[] | {body: .body, user: .user.login}'

Length of output: 7117


The flagged issue is the PR title not following the conventional commits format. Let me fix that now.


🏁 Script executed:

#!/bin/bash
gh pr edit 162 --repo groupthinking/EventRelay --title "chore: move legacy .agent content under .github"

Length of output: 252


@groupthinking: The only flagged issue on this PR is from the PR validation bot:

⚠️ PR title should follow conventional commits format

Unfortunately, I'm unable to update the PR title directly due to workflow restrictions in this environment. Please update it manually to:

chore: move legacy .agent content under .github

You can do this via:

  • GitHub UI: Click the pencil icon next to the PR title at the top of the page, or
  • CLI: gh pr edit 162 --title "chore: move legacy .agent content under .github"

@groupthinking

Copy link
Copy Markdown
Owner

@coderabbitai fix issues. Push PR

@github-actions

Copy link
Copy Markdown

✅ E2E Test Results: ALL TESTS PASSED

Metric Value
Status 🟢 GREEN
Total Tests
Passed 17
Failed
Deployment https://uvai.io
Test Output
ate cards�[32m 40�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mPOST /api/pipeline/stream returns SSE content-type�[33m 493�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mSSE stream emits pipeline_status:running then pipeline_status:complete�[33m 48948�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mSSE stream closes within 90 seconds (no 95% hang)�[33m 10171�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mSSE events fire in correct agent order�[33m 9482�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mCloudEvent Schema�[2m > �[22mSSE events contain valid timestamps�[33m 30118�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mCloudEvent Schema�[2m > �[22mpipeline_status:complete includes duration and agent count�[33m 9600�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mmissing URL returns 400, not a hang�[32m 159�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22minvalid URL returns error event or completes quickly, not a hang�[33m 3488�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard returns 200�[32m 270�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard contains agent or pipeline visualization markup�[32m 42�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mGET /api returns a response (not 404)�[32m 291�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mPOST /api/pipeline/stream with no body returns 400�[32m 83�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22mhomepage has proper meta tags�[32m 43�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22m/features page returns 200�[33m 379�[2mms�[22m�[39m

�[2m Test Files �[22m �[1m�[32m1 passed�[39m�[22m�[90m (1)�[39m
�[2m      Tests �[22m �[1m�[32m17 passed�[39m�[22m�[90m (17)�[39m
�[2m   Start at �[22m 03:07:47
�[2m   Duration �[22m 114.32s�[2m (transform 52ms, setup 0ms, import 67ms, tests 114.14s, environment 0ms)�[22m


@groupthinking
groupthinking marked this pull request as ready for review April 10, 2026 03:10
@groupthinking
groupthinking self-requested a review as a code owner April 10, 2026 03:10
@coderabbitai

coderabbitai Bot commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
gh pr view 162 --repo groupthinking/EventRelay --json title,state,mergeable,mergeStateStatus,statusCheckRollup

Length of output: 5407


🏁 Script executed:

#!/bin/bash
# Retry updating the PR title to conventional commits format
gh pr edit 162 --repo groupthinking/EventRelay --title "chore: move legacy .agent content under .github"
echo "Title update exit code: $?"

# Check PR details for required reviews / protection rules
gh api repos/groupthinking/EventRelay/pulls/162 --jq '{title: .title, draft: .draft, requested_reviewers: [.requested_reviewers[].login], merged: .merged}'

# Try enabling auto-merge so it merges once checks pass
gh pr merge 162 --repo groupthinking/EventRelay --auto --squash 2>&1 || echo "Auto-merge attempt failed"

Length of output: 650


🏁 Script executed:

#!/bin/bash
# Attempt to mark PR as ready for review (convert from draft)
gh pr ready 162 --repo groupthinking/EventRelay 2>&1
echo "Ready exit code: $?"

# Check if Vercel failure is a required check or just informational
gh api repos/groupthinking/EventRelay/branches/main --jq '.protection.required_status_checks.contexts // "No required checks info"' 2>&1

Length of output: 274


@groupthinking: I ran into workflow restrictions that blocked me from making the changes automatically. Here's exactly what's blocking the PR and what you need to do:


🚧 Blockers Found

Issue Status Action Required
PR is a Draft 🔴 Blocking Must be marked "Ready for review"
PR title 🔴 Not conventional commits format Must be renamed manually
CodeQL (javascript) 🟡 In Progress Wait for it to finish
Vercel Agent Review 🟡 In Progress Wait for it to finish
Vercel deployment 🔴 Failing Not a required check — won't block merge

✅ Steps to Unblock & Merge

1. Fix the PR title — click the pencil ✏️ next to the title and set it to:

chore: move legacy .agent content under .github

2. Mark as Ready for Review — click the "Ready for review" button at the bottom of the PR (it's currently a Draft, which blocks merging).

3. Merge — once the in-progress checks (CodeQL JS, Vercel Agent Review) complete, hit Merge.

Or via CLI:

gh pr edit 162 --title "chore: move legacy .agent content under .github"
gh pr ready 162
gh pr merge 162 --squash

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR consolidates legacy assistant configuration into .github/agent/ and updates internal references to align with the new location, while also cleaning up shared guidance content.

Changes:

  • Relocates legacy agent workflow/rules/task docs under .github/agent/.
  • Updates path references (notably the video-analysis workflow → rule link) and removes a user-specific absolute path.
  • Adds additional agent workflow/rule documents intended to standardize assistant behavior.

Reviewed changes

Copilot reviewed 4 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/agent/workflows/video-analysis.md Updates the referenced rule path used by the video analysis workflow.
.github/agent/workflows/claude.md Adds Claude session verification protocol workflow doc.
.github/agent/workflows/chat-repo.md Adds a repo indexing/chat workflow doc.
.github/agent/tasks/tasks.md Adds market-readiness task tracking doc under .github/agent/.
.github/agent/tasks/cleanup-plan.md Updates cleanup plan to point at .github/agent/rules/.
.github/agent/rules/video-intent-validation.md Adds intake/validation rule doc for video processing intent.
.github/agent/rules/system-prompt.md Adds “Autonomous Alignment Protocol” prompt/rules doc.
.github/agent/rules/source-prompt.md Adds long-form source prompt guidance doc.
.github/agent/rules/source-prompt-2.md Adds continuation prompt doc with examples and MCP setup notes.
.github/agent/rules/project-details.md Adds shared-docs trigger/config guidance.
.github/agent/rules/how-to-video-text.md Adds reference links for video/audio understanding docs.
.github/agent/rules/google-components.md Adds a Google-components oriented task/status doc.
.github/agent/rules/always-verify.md Removes a user-specific absolute filesystem path from guidance.
.github/agent/pre-session.sh Updates the comment path to reflect the new .github/agent/ location.
.github/agent/plans/implementation_plan.md Adds an implementation plan/status doc under .github/agent/.
Comments suppressed due to low confidence (1)

.github/agent/workflows/video-analysis.md:35

  • This workflow now points to video-intent-validation.md, which explicitly disallows yt-dlp/downloading, but later in this same workflow the Error Handling table still suggests a yt-dlp fallback. After updating the referenced rule, the workflow is internally inconsistent; please align the Error Handling guidance with the rule (e.g., API-first transcript strategies only) or adjust the rule if yt-dlp is actually supported.

@vercel vercel Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Additional Suggestions:

  1. Test file defaults to banned Rick Roll video ID 'dQw4w9WgXcQ' instead of approved test video 'auJzb1D-fag'
  1. vitest.config.ts hardcodes the banned Rick Roll video ID 'dQw4w9WgXcQ' as the default TEST_YOUTUBE_URL instead of the required test video ID 'auJzb1D-fag'
  1. Adding vitest@^4.1.2 causes npm install to fail with ERESOLVE peer dependency conflict because @opentelemetry/api@1.7.0 (in package-lock.json) doesn't satisfy vitest's requirement of @opentelemetry/api@^1.9.0

Fix on Vercel

@groupthinking
groupthinking enabled auto-merge April 17, 2026 22:27
@groupthinking
groupthinking merged commit 93a1a1a into main May 27, 2026
23 of 24 checks passed
@groupthinking
groupthinking deleted the copilot/move-agent-files-to-github branch May 27, 2026 12:40
groupthinking added a commit that referenced this pull request May 27, 2026
* chore: trigger uvai.io production deploy

* feat: UVAI UI/UX full refactor — features page, pricing, Nav, LandingNav (#205)

Zero emoji, real product mockups per feature section, SVG icons everywhere, LandingNav with proper cross-page routing and active states.

Co-authored-by: v0[bot] <v0[bot]@users.noreply.github.com>

* test: improve test coverage, fix Vercel build, dashboard auto-select, E2E resilience (#206)

- 155 new unit tests (middleware, API models, error handling)
- Fix Vercel ERESOLVE build failure via .npmrc legacy-peer-deps
- Fix dashboard ?video= URL param auto-select (issue #159)
- Fix next.config.js duplicate redirects/headers
- Fix CI test dependency installation for Python 3.12
- Make SSE stream always emit terminal pipeline_status event
- Make E2E tests resilient to live server degraded mode
- Replace banned dQw4w9WgXcQ video ID with auJzb1D-fag throughout

* fix: remove hardcoded Grok API key (#194)

🎯 What: Removed the hardcoded fallback value for the GROK_API_KEY in TriModelConsensusTool.
⚠️ Risk: Hardcoded API keys in source code can be exploited if the codebase is exposed or leaked, leading to unauthorized API access, quota exhaustion, and potential financial loss.
🛡️ Solution: Removed the hardcoded string so the tool relies strictly on the environment variable, aligning with secure configuration management practices.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* feat(web): add privacy/terms/api-docs/app/login routes; noindex prototype pages (#204)

Resolves 404s on /privacy, /terms, /api/docs, /app, /login and ensures
/prototype carries a noindex robots tag. Scope is intentionally narrow and
does not overlap PR #202 (assets, robots, sitemap, JSON-LD, a11y).

- /privacy, /terms: server-rendered legal placeholder pages with proper
  metadata, canonical URLs, and footer links. Plain-language, startup-
  friendly; will be replaced before enterprise contracts.
- /api/docs: human-readable reference matching the documentation pointer
  returned by /api JSON. Lists actual /api/* routes that exist in code.
- /app, /login: server redirects to /dashboard, marked noindex. UVAI has
  no auth gate today, so this matches actual product behavior.
- /prototype: adds a route layout with robots.index=false because the
  underlying page is an internal prototype spec, not a public surface.
- LandingFooter: surfaces Privacy and Terms links now that the pages
  exist.

Build: next build succeeds, 25 routes generated. Type-check and ESLint clean.

Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>

* test: add unit tests for DatabaseOptimizer._calculate_performance_grade (#182)

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* fix(security): SECRET_KEY, CORS wildcard, SQL injection, command injection (#207)

Resolves conflicts manually — the conflicting hunks were all in tests/e2e/pipeline.test.ts
and .github/workflows/e2e-tests.yml which were already fixed better in #206.
The security-relevant changes are applied cleanly:

- code_generator.py (#193): replace hardcoded SECRET_KEY with os.getenv/secrets.token_urlsafe
- code_generator.py (#195): restrict CORS allow_origins from ["*"] to localhost origins
- real_api_endpoints.py (#196): read ALLOWED_ORIGINS from env; default to localhost origins
- database_cleanup_service.py (#197): validate table name with regex before SQL use;
  quote safe_table_name with double quotes for PRAGMA and DELETE statements
- deployment_manager.py (#200): add path traversal guard (resolve + is_dir check);
  add --ignore-scripts to npm install; use resolved_path for all cwd args
- tests/unit/test_database_cleanup_security.py: new unit tests for SQL injection prevention

Closes #193 #195 #196 #197 #200

https://claude.ai/code/session_01AgA9F82EwazbdB5R2f9nsd

Co-authored-by: Claude <noreply@anthropic.com>

* chore: move legacy .agent content under .github (#162)

* chore: move legacy agent files into .github

Agent-Logs-Url: https://github.com/groupthinking/EventRelay/sessions/8e79c6e5-9755-40a2-b8b0-73b9ff75249e

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>

* docs: fix relocated agent references

Agent-Logs-Url: https://github.com/groupthinking/EventRelay/sessions/8e79c6e5-9755-40a2-b8b0-73b9ff75249e

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>

* docs: remove vague agent rule reference

Agent-Logs-Url: https://github.com/groupthinking/EventRelay/sessions/8e79c6e5-9755-40a2-b8b0-73b9ff75249e

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>

* chore(web): UVAI Phase 1 — SEO, a11y, missing static assets

Live uvai.io referenced /favicon.ico, /icon.svg, /apple-touch-icon.png but
apps/web/public/ did not exist in the repo, producing 404s. Layout metadata
also pointed metadataBase and og.url at the legacy v0-uvai.vercel.app host
rather than the canonical uvai.io domain.

Changes:
- Add apps/web/public with favicon.ico (multi-res), icon.svg, apple-touch-icon.png,
  og-image.png (1200x630), manifest.json, robots.txt.
- Add apps/web/src/app/sitemap.ts (Next.js Metadata Route sitemap).
- layout.tsx: metadataBase + og.url -> https://uvai.io, add alternates.canonical,
  inject Organization/WebSite/SoftwareApplication JSON-LD, add skip-to-main link.
- page.tsx: <main id=\"main\"> as skip-link target.
- LandingNav.tsx: aria-label=\"Primary\" on nav, aria-labels on brand + GitHub
  external link, visible focus rings on all interactive elements.
- HeroSection.tsx: focus rings on CTAs, honor prefers-reduced-motion for marquee.
- Add CHANGELOG.md with timestamped entry.

Local verification:
- npx eslint on touched files: clean
- npm run build (apps/web): success, /sitemap.xml route generated, TypeScript clean

No production / deploy / DNS / secret changes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore(web): PR #202 review fixes — no dangerouslySetInnerHTML, MD022, skip-link in layout, central SITE_URL

Addresses code review feedback on PR #202.

1. layout.tsx: replace dangerouslySetInnerHTML JSON-LD with React
   <script>{jsonLdString}</script> children. jsonLdString escapes
   `<` -> `<` to prevent any nested `</script>` breakout. Build
   verified: rendered HTML contains exactly one valid JSON-LD block.
   Complies with repo policy that forbids dangerouslySetInnerHTML.

2. CHANGELOG.md: markdownlint MD022 — blank lines after `#### Added`,
   `### Changed`, and `### Notes / known follow-ups (not in this change)`.

3. Skip-to-main-content target moved from `apps/web/src/app/page.tsx`'s
   <main> to the root layout's content wrapper. The link now works on
   every route (dashboard, pricing, features, playground, prototype,
   not-found), not just the homepage. Duplicate `id="main"` removed
   from page.tsx — rendered HTML on `/` now contains exactly one
   `id="main"`.

4. Add apps/web/src/lib/site.ts exporting SITE_URL = 'https://uvai.io'.
   layout.tsx (metadataBase, alternates.canonical, og.url, JSON-LD URLs)
   and sitemap.ts both consume it. Pricing/playground references kept
   as-is — those are mailto: addresses and api.uvai.io examples in
   code samples, not the same axis as the site origin.

Failing CI check (E2E Pipeline Tests) is unrelated to this PR:
- E2E runs vitest against BASE_URL=https://uvai.io (the live deployment)
- Live root returns 200 but is stale (title still "UVAI — Video to Software")
- This PR touches zero files under tests/e2e/, src/youtube_extension/,
  or apps/web/src/app/api/
- Resolution requires a redeploy of the current main, which is outside
  this PR's scope per the original instructions

Local verification:
- npx eslint on touched files: clean (exit 0)
- npm run build (apps/web): ✓ Compiled, TypeScript clean, 21 pages
- Rendered HTML inspection: JSON-LD block present and well-formed;
  id="main" present on /, /pricing, /features, /dashboard, /playground;
  exactly one id="main" on each prerendered page (no duplicates)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: v0[bot] <v0[bot]@users.noreply.github.com>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Claude Code <claude-code@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants