multi-game-codes-hub ยท diff
git:20260907.987ba37 to git:20260907.251ccd0
34 added, 11 removed. Audit A to A.
---
name: multi-game-codes-hub
- description: Generate a Next.js Roblox codes page from validated JSON using a reusable TSX template. Use when creating or regenerating a single game's active/expired codes page with metadata, copy controls, FAQ, and breadcrumb schema.
+ description: Generate a Next.js Roblox codes page from validated JSON using a reusable TSX template. Use when creating or regenerating a single game's active/expired codes page with metadata, copy controls, optional supplied redemption/FAQ content, and breadcrumb schema.
metadata:
keywords: roblox codes, promo codes, game codes, nextjs page generator, faq schema
---
# Multi-Game Codes Hub
Generate one Next.js codes page from explicit game data. The included generator renders a TSX template; it does not discover, monitor, translate, or validate codes against Roblox.
## Implemented resources
- [resources/generate_code_page.py](resources/generate_code_page.py): validates JSON and renders a page.
- - [resources/templates/codes_page.tsx](resources/templates/codes_page.tsx): Next.js page template for active/expired codes, redemption guidance, metadata, FAQ, and breadcrumbs.
+ - [resources/templates/codes_page.tsx](resources/templates/codes_page.tsx): Next.js page template for active/expired codes, metadata, breadcrumbs, and optional supplied redemption/FAQ content.
- [resources/components/CopyButton.tsx](resources/components/CopyButton.tsx): client-side copy control with a fallback.
- [resources/components/CodeTable.tsx](resources/components/CodeTable.tsx): optional reusable code table.
- [resources/schemas/faq_schema.ts](resources/schemas/faq_schema.ts): FAQ, breadcrumb, and item-list schema helpers.
- [USAGE.md](USAGE.md): concise CLI reference.
The generated template imports `@/components/CopyButton`; copy the included component into that alias or change the import for the target project.
## Input contract
```json
{
"gameName": "Your Bizarre Adventure",
"gameSlug": "yba",
"baseUrl": "https://example.com",
"activeCodes": [
{
"code": "CODE123",
"reward": "50 Spins",
"expiryDate": "2026-04-30",
"conditions": "Optional"
}
],
"expiredCodes": [
{
"code": "OLDCODE",
"reward": "25 Spins"
}
+ ],
+ "redemptionSteps": [
+ "Open the game's menu.",
+ "Enter a supplied code in the code field."
+ ],
+ "faq": [
+ {
+ "question": "Where is the code field?",
+ "answer": "The supplied source says it is in the game menu."
+ }
]
}
```
Required top-level fields:
- `gameName`: non-empty string.
- `gameSlug`: lowercase letters/digits separated by single hyphens.
- `baseUrl`: absolute HTTP(S) site URL without credentials, query, or fragment. A trailing slash is normalized away.
- - `activeCodes` and `expiredCodes`: arrays when provided; each entry requires non-empty string `code` and `reward`.
+ Optional top-level fields:
+
+ - `activeCodes` and `expiredCodes`: arrays; each entry supports only `code`, `reward`, `expiryDate`, and `conditions`. `code` and `reward` are required non-empty strings.
+ - `redemptionSteps`: array of non-empty strings. The section is omitted when the array is absent or empty.
+ - `faq`: array of objects containing only non-empty `question` and `answer` strings. The FAQ section and FAQ schema are omitted when absent or empty.
+
+ Unknown top-level, code-entry, or FAQ-entry fields are errors; the generator never silently ignores input.
+
`baseUrl` drives canonical and breadcrumb URLs. Never reuse an example domain for a real site.
## Generate a page
From the Skill directory:
```bash
python3 resources/generate_code_page.py \
--input resources/examples/yba_codes.json \
--output /tmp/yba-codes-page.tsx
```
The default template is resolved relative to this Skill, so the command also works when the script is invoked from another current working directory. `--input`, `--output`, and an explicitly supplied `--template` retain normal CLI semantics: relative paths resolve from the caller's current directory and absolute paths remain absolute.
To use a custom template:
```bash
python3 resources/generate_code_page.py \
--input ./game.json \
--output ./page.tsx \
--template ./custom-codes-page.tsx
```
Generation uses the current UTC month, year, and date. It fails before writing output if the JSON is invalid, required values are missing, URLs are invalid, or any `{{templateVariable}}` remains unresolved.
## Template variables
- - `{{gameName}}`
- - `{{gameSlug}}`
- - `{{baseUrl}}`
- - `{{rewards}}`
+ - `{{gameNameJson}}`
+ - `{{gameSlugJson}}`
+ - `{{baseUrlJson}}`
+ - `{{rewardsJson}}`
- `{{activeCodesData}}`
- `{{expiredCodesData}}`
- - `{{lastUpdated}}`
- - `{{currentMonth}}`
- - `{{currentYear}}`
+ - `{{redemptionStepsData}}`
+ - `{{faqItemsData}}`
+ - `{{generatedDateJson}}`
+ - `{{currentMonthJson}}`
+ - `{{currentYearJson}}`
+ - `{{redemptionSection}}`
+ - `{{faqSchemaDefinition}}`
+ - `{{faqSchemaScript}}`
+ - `{{faqSection}}`
## Verification
After generation:
1. Confirm the output contains the target `baseUrl` and no unrelated domain.
2. Confirm no `{{...}}` placeholder remains.
3. Copy or adapt the required component imports.
4. Run the target Next.js project's typecheck, lint, and build.
- 5. Review codes and redemption instructions against a cited primary source; the generator does not verify factual accuracy.
+ 5. Review codes and any supplied redemption/FAQ content against a cited primary source; the generator does not verify factual accuracy.
## Roadmap and boundaries
Discord/Twitter monitoring, automatic code validity checks, automatic expiry updates, multilingual generation, community submissions, and deployment automation are not implemented. Treat them as roadmap items only; do not invoke nonexistent scripts such as `discord_code_monitor.py`, `code_validator.py`, `update_codes.py`, or `generate_multilingual.py`.