portfolio-social-metadata: Portfolio Social Metadata #3

Open
std-bot wants to merge 1 commit from task/portfolio-social-metadata into main
First-time contributor

Assigned idea

Benchmark authoring specification.

Summary: Add deterministic SEO and social sharing metadata to the portfolio HTML entry document while preserving the existing Vite React mount point and module script.

Task intent: Update the upstream portfolio landing page HTML so shared links show the correct author, role, and preview metadata for Mwaki Denis without changing the React application entry behavior.

Benchmark plan: Construct a regular coding exercise where the solver edits index.html only. The prompt should ask for exact SEO, Open Graph, and Twitter card metadata in the document head, while keeping the existing favicon, viewport, title, div id="root", and /src/main.tsx module script intact.

Environment plan: Use the materialized repo as the environment/repo at commit a7e963b0e2269cd35fd3f2fa17216fd12915facf. The task/environment should install the repo’s normal frontend dependencies if needed, but the verifier can operate by parsing index.html directly and does not need a browser.

Verifier plan: Implement test_outputs.py to read index.html and assert: the title remains Mwaki Denis - Software Engineer; the favicon link still has type="image/svg+xml" and href="/favicon.svg"; the body still contains <div id="root"></div> and the module script source /src/main.tsx; the head contains exact meta tags for description, author, theme-color, og:title, og:description, og:type, og:url, twitter:card, twitter:title, and twitter:description with predetermined values from the task prompt; and no duplicate metadata names/properties are introduced.

Oracle plan: Provide an oracle patch that edits index.html by inserting the required meta tags inside <head> after the viewport tag or before the title, leaving the existing document structure unchanged. The oracle should be a minimal HTML-only change.

Difficulty plan: Current coding systems may over-edit the Vite scaffold, change React entry wiring, invent assets, or add inconsistent metadata values. They may also miss duplicate-tag constraints or place social metadata outside the head, which direct HTML parsing will catch.

Repo patch scope: Expected upstream edits are limited to index.html; no changes should be made under src/, config files, package manifests, or public assets.

Anti-leakage notes: The solver-facing prompt must not mention benchmark, harness, Snorkel, Harbor, std-ts, agent, stage, attempt, retry, generated task, or evaluation context. It should read like normal portfolio maintenance work.

Approach: Use the existing index.html evidence showing a Vite HTML shell with favicon, viewport, title, root div, and /src/main.tsx script. The authored work should require adding metadata while preserving those known anchors.

Verification: Run python test_outputs.py from the repository root after applying a solution. The verifier should parse index.html and fail with clear messages for missing exact metadata, duplicate metadata keys, changed title/favicon, or altered React mount/script entries.

Risk: The main risk is selecting metadata values not present in the original file. Mitigate by placing the exact required values in the task prompt and oracle, and verify only deterministic strings rather than inferred branding beyond the existing title.

Path rules: task package is tasks/; mutable upstream checkout is tasks//environment/repo; benchmark package files are under tasks//task; verifier/container environment belongs under tasks//task/environment; regular and UI verifier logic belongs in task/tests/test_outputs.py and test.sh only runs that file through pytest.

Agent context

Task slug: portfolio-social-metadata
Branch: task/portfolio-social-metadata

## Assigned idea Benchmark authoring specification. Summary: Add deterministic SEO and social sharing metadata to the portfolio HTML entry document while preserving the existing Vite React mount point and module script. Task intent: Update the upstream portfolio landing page HTML so shared links show the correct author, role, and preview metadata for Mwaki Denis without changing the React application entry behavior. Benchmark plan: Construct a regular coding exercise where the solver edits `index.html` only. The prompt should ask for exact SEO, Open Graph, and Twitter card metadata in the document head, while keeping the existing favicon, viewport, title, `div id="root"`, and `/src/main.tsx` module script intact. Environment plan: Use the materialized repo as the environment/repo at commit `a7e963b0e2269cd35fd3f2fa17216fd12915facf`. The task/environment should install the repo’s normal frontend dependencies if needed, but the verifier can operate by parsing `index.html` directly and does not need a browser. Verifier plan: Implement `test_outputs.py` to read `index.html` and assert: the title remains `Mwaki Denis - Software Engineer`; the favicon link still has `type="image/svg+xml"` and `href="/favicon.svg"`; the body still contains `<div id="root"></div>` and the module script source `/src/main.tsx`; the head contains exact meta tags for `description`, `author`, `theme-color`, `og:title`, `og:description`, `og:type`, `og:url`, `twitter:card`, `twitter:title`, and `twitter:description` with predetermined values from the task prompt; and no duplicate metadata names/properties are introduced. Oracle plan: Provide an oracle patch that edits `index.html` by inserting the required meta tags inside `<head>` after the viewport tag or before the title, leaving the existing document structure unchanged. The oracle should be a minimal HTML-only change. Difficulty plan: Current coding systems may over-edit the Vite scaffold, change React entry wiring, invent assets, or add inconsistent metadata values. They may also miss duplicate-tag constraints or place social metadata outside the head, which direct HTML parsing will catch. Repo patch scope: Expected upstream edits are limited to `index.html`; no changes should be made under `src/`, config files, package manifests, or public assets. Anti-leakage notes: The solver-facing prompt must not mention benchmark, harness, Snorkel, Harbor, std-ts, agent, stage, attempt, retry, generated task, or evaluation context. It should read like normal portfolio maintenance work. Approach: Use the existing `index.html` evidence showing a Vite HTML shell with favicon, viewport, title, root div, and `/src/main.tsx` script. The authored work should require adding metadata while preserving those known anchors. Verification: Run `python test_outputs.py` from the repository root after applying a solution. The verifier should parse `index.html` and fail with clear messages for missing exact metadata, duplicate metadata keys, changed title/favicon, or altered React mount/script entries. Risk: The main risk is selecting metadata values not present in the original file. Mitigate by placing the exact required values in the task prompt and oracle, and verify only deterministic strings rather than inferred branding beyond the existing title. Path rules: task package is tasks/<slug>; mutable upstream checkout is tasks/<slug>/environment/repo; benchmark package files are under tasks/<slug>/task; verifier/container environment belongs under tasks/<slug>/task/environment; regular and UI verifier logic belongs in task/tests/test_outputs.py and test.sh only runs that file through pytest. ## Agent context Task slug: portfolio-social-metadata Branch: task/portfolio-social-metadata <!-- std-ts:idea-pr-body -->
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin task/portfolio-social-metadata:task/portfolio-social-metadata
git switch task/portfolio-social-metadata

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff task/portfolio-social-metadata
git switch task/portfolio-social-metadata
git rebase main
git switch main
git merge --ff-only task/portfolio-social-metadata
git switch task/portfolio-social-metadata
git rebase main
git switch main
git merge --no-ff task/portfolio-social-metadata
git switch main
git merge --squash task/portfolio-social-metadata
git switch main
git merge --ff-only task/portfolio-social-metadata
git switch main
git merge task/portfolio-social-metadata
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
snorkel/root-repository-maintenance-e2b9480e3cde42!3
No description provided.