Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ The current release includes the Next.js foundation, a bilingual visual kit, `Pr
- Do not reintroduce skills, education, or current activity as options, legacy forms, or README output. Preserve their internal v1 structures and positions while editing or reordering the five active sections. Structural validation still applies to the complete document, but the generator does not validate links or content in retired modules.
- Distinguish selection, visibility, and deletion: configuring a section does not hide it; hiding preserves its data; removing an entry explicitly deletes it. The checkbox changes inclusion only and preserves focus; adding and editing a hidden section are identified actions. Keep the active selection, mobile navigation, and dragging as ephemeral state outside the document. When reordering included sections, preserve hidden, retired, and metrics references in their positions. Use keys that distinguish fixed references from custom ones; confirm the order only after a valid move completes and preserve it when a move is canceled.
- Activity and contributions use the fixed `contributions` reference and effective inclusion `visibility.contributions || visibility.metrics`; do not offer metrics as a separate fixed section. Hiding it from navigation turns off both flags; showing it again enables contributions and enables metrics only if selected cards remain. Recovering a draft does not rewrite flags. Keep every card type disabled initially, the panel collapsible, manual contributions available without a username, and suggestions as explicit choices.
- V2 contribution items add optional `links` (up to five), `images` (up to three public HTTPS images with non-empty alt text), and a manually entered GitHub `repository` preview to the legacy `url` field. Use `url` when `links` is absent; do not rewrite v1 or add fields on recovery. Preserve contribution order and offer explicit Move up/Move down actions. Repository previews never fetch metadata. Derived image/repository markup uses the shared filtered HTML budget and exact `customHtml` ranges, not `customImages`. See [ADR 0039](docs/decisions/0039-contribution-details-and-order.md).
- Save only `metrics.username/cards/appearance?/extended?/cardColumns?` and the chosen contributions. V2 adds `extended-repository`, `extended-gist`, and `extended-wakatime` to its seven previous IDs; v1 keeps its original three IDs. `cardColumns` is optional, limited to 1 or 2, and defaults to 2 only when creating a new profile; absence after recovery or migration keeps the previous one-card-per-row output. Preserve selected card order and place an odd final card in its own row. Preview the same GFM table Markdown with `remark-gfm`. Appearance combines presets, 79 themes, and validated colors/dimensions, with no CSS or URLs. `extended` limits statistics, filters, languages, twelve repositories/twelve Gists, and a separate WakaTime username. Do not insert defaults during recovery; reset removes appearance only. Snapshots are ephemeral, validated, and associated with identity/options; distinguish zero, partial, and absent data. «Buscar datos», below the username, works without cards and fetches common data. Afterwards, choosing components for the searched account reuses coverage and queries only missing data, with a 300 ms debounce; valid applied resources may also be loaded after Search. An identity that has not been searched requires another explicit action. Customizing data already covered renders local SVG with the same pure renderers, without HTTP SVG or JSON. Do not query on mount, recovery, opening, or entering the username. Progressive loading, errors, and retry respect reduced motion and do not loop on failures. Preview Blobs are internal and revocable and do not extend image or HTML support. Replacing or clearing the profile cancels and clears the cache and activation state. Public cache data may be persisted temporarily in separate IndexedDB storage under ADR 0031; never in `ProfileDocument`, Markdown, or backups. Optional contribution search is independent. See [ADR 0024](docs/decisions/0024-extended-public-suite-and-mit.md), [ADR 0027](docs/decisions/0027-browser-activity-data-cache.md), and [ADR 0029](docs/decisions/0029-account-first-activity-search.md).
- V2 contribution items add optional `links` (up to ten), `images` (up to three public HTTPS images with non-empty alt text), and retain legacy `repository` preview data only for compatibility. Use `url` when `links` is absent; do not rewrite v1 or migrate fields on recovery. Preserve contribution order and offer explicit Move up/Move down actions. Render old repository details as an ordinary link and description; do not offer a separate preview or fetch metadata. Derived image markup uses the shared filtered HTML budget and exact `customHtml` ranges, not `customImages`. See [ADR 0039](docs/decisions/0039-contribution-details-and-order.md).
- Save only `metrics.username/cards/appearance?/extended?/cardColumns?/contentOrder?` and the chosen contributions. V2 adds `extended-repository`, `extended-gist`, and `extended-wakatime` to its seven previous IDs; v1 keeps its original three IDs. `cardColumns` is optional, limited to 1 or 2, and defaults to 2 only when creating a new profile; absence after recovery or migration keeps the previous one-card-per-row output. Preserve selected card order and place an odd final card in its own row. In two-column mode, make the same local/public SVG renderers increase text size. `contentOrder` chooses whether activity or manual contributions appear first; absence preserves activity-first order. Preview the same GFM table Markdown with `remark-gfm`. Appearance combines presets, 79 themes, and validated colors/dimensions, with no CSS or URLs. `extended` limits statistics, filters, languages, twelve repositories/twelve Gists, and a separate WakaTime username. Do not insert defaults during recovery; reset removes appearance only. Snapshots are ephemeral, validated, and associated with identity/options; distinguish zero, partial, and absent data. «Buscar datos», below the username, works without cards and fetches common data. Afterwards, choosing components for the searched account reuses coverage and queries only missing data, with a 300 ms debounce; valid applied resources may also be loaded after Search. An identity that has not been searched requires another explicit action. Customizing data already covered renders local SVG with the same pure renderers, without HTTP SVG or JSON. Do not query on mount, recovery, opening, or entering the username. Progressive loading, errors, and retry respect reduced motion and do not loop on failures. Preview Blobs are internal and revocable and do not extend image or HTML support. Replacing or clearing the profile cancels and clears the cache and activation state. Public cache data may be persisted temporarily in separate IndexedDB storage under ADR 0031; never in `ProfileDocument`, Markdown, or backups. Optional contribution search is independent. See [ADR 0024](docs/decisions/0024-extended-public-suite-and-mit.md), [ADR 0027](docs/decisions/0027-browser-activity-data-cache.md), and [ADR 0029](docs/decisions/0029-account-first-activity-search.md).
- The five Extended families adapt pinned MIT code and render locally through the app's own public clients, with no hosted chart service. Preserve notices and licenses. Panorama distinguishes the period from the language sample; monthly activity sums UTC days and identifies partial months. Do not aggregate metrics with no data. The authorized ranking is optional and disabled initially: it uses Extended's formula with all six inputs present, does not assess skill or represent an observed population percentile, and is hidden when data is null or partial. Do not infer levels. Validate routes and options exactly; allow only bounded hexadecimal colors and gradients, with no CSS, animations, hosts, or free-form parameters. See the [compatibility matrix](docs/github-stats-extended.md).
- The server accepts a dedicated classic PAT and verifies that `x-oauth-scopes` is present, empty, or exactly `public_repo` before fetching data. Prefer only `public_repo` for GraphQL queries of public repositories; do not add `repo`, `read:user`, or other scopes. Reject credentials that cannot be verified, including fine-grained tokens. The client performs read-only queries even though the public scope permits other operations. Keep `GITHUB_TOKEN` out of Git and the browser. `APP_URL` is a configured public HTTPS origin, never derived from Host. If it is empty, only Vercel with `VERCEL_ENV=production` may resolve `VERCEL_PROJECT_PRODUCTION_URL` as a bare HTTPS domain under the same policy; an explicit, non-empty invalid value does not enable a fallback. Do not use `VERCEL_URL`, branch aliases, or request data. Without a valid origin, `generateReadme` allows reviewing the same Markdown with local paths and returns `exportIssues: activity_not_configured`; copy and download remain disabled until cards are deselected or a public host is configured. See [ADR 0010](docs/decisions/0010-github-activity.md) and [ADR 0036](docs/decisions/0036-production-card-origin.md).
- Offer technologies through the curated local catalog, autocomplete, icon chips, and a custom-text alternative. Suggest editable categories when adding an item, honor the selected destination, and do not regroup drafts during recovery or language changes. Organizing by category is an explicit action; removing a heading preserves its tools. Preserve legacy structures, opaque IDs, order, and contexts. Icons come from Devicon, Simple Icons, and Lobe Icons pinned to commits, with local SVGs and attribution. Export decorative icons at 20 × 20 beside the visible name and keep preview compatibility with the previous 32 × 32 markup. An AI tool in the catalog does not imply AI integration.
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ A short profile can tell a story. Every section is optional: start with a few wo
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Who you are** | A centered intro with writing examples, an optional country line, and italic or monospace title styles. |
| **What you build with** | A searchable technology catalog with icons, editable categories and custom names. |
| **What you do** | Projects and contributions with editable order, multiple links, public images and a manual repository preview. |
| **What you do** | Projects and contributions with editable order, up to ten links per contribution, and public images. |
| **Your own content** | Repeatable sections with text, lists, links, headings, quotes, dividers, public images, filtered HTML and syntax-highlighted code. |
| **Where to find you** | Social profiles, a portfolio, websites and email. |
| **Public activity, if you choose it** | Ten optional card types with themes, colors and a one- or two-card row layout; they require the configuration described [below](#optional-activity-and-cards). |

Reorder sections by dragging, using the keyboard or pressing the arrow buttons. Hide a section while keeping its content. On desktop, editing and preview appear side by side; on smaller screens, switch between them. Light and dark themes are available.

![English Activity and contributions editor showing manual contribution order and links, with the preview displaying a public image and repository link with its description.](docs/assets/activity-contributions.jpg)
![English Activity and contributions editor showing manual contribution order and multiple links beside the live README preview.](docs/assets/activity-contributions.jpg)

_Contributions stay manual and editable. The repository preview uses the entered URL and description; it does not query GitHub._
_Contributions stay manual and editable. Add repository URLs as ordinary links and include any context in the contribution description._

## How it works

Expand Down
Loading
Loading