| title | description |
|---|---|
Corporate TechRadar Check for GitHub Copilot |
A skill for GitHub Copilot to check technology recommendations against the corporate TechRadar. |
This skill allows GitHub Copilot to automatically check the ring (e.g., "adopt", "hold") of potentially useful technologies during code generation, by consulting the corporate techradar hosted at https://pagopa.github.io/technology-radar/rd.json. The goal is to avoid using technologies in "hold" or not recommended, without having to include the entire JSON in the agent's context, which could "pollute" it with excessive data.
Invoke this skill when the agent is about to suggest or use a specific technology (framework, library, tool) in the generated code, or when the user asks for technology recommendations or explicitly includes @techradar in the prompt. The check should happen before recommending or introducing any new dependency.
When the agent identifies a relevant technology for the task (e.g., a framework, library, or tool), it follows these steps to consult the techradar:
-
Download the TechRadar JSON:
- Use a bash tool to download the JSON file from the public URL.
- Suggested command:
curl -s https://pagopa.github.io/technology-radar/rd.json -o /tmp/techradar.json - This avoids loading the JSON into the agent's context.
- Prefer a temp file with a unique name if multiple checks could run in the
same session (e.g.,
mktemp).
-
Search for the Technology:
- Identify the name of the technology to search for (e.g., "React", "Node.js", "TypeScript").
- Normalize the name when possible (trim spaces, case-insensitive).
- Use
jqto query the JSON and extract the associated ring. - Suggested command (case-insensitive match):
jq -r --arg name "TECHNOLOGY" '.items[] | select((.name // "") | ascii_downcase == ($name | ascii_downcase)) | .ring' /tmp/techradar.json- Replace "TECHNOLOGY" with the actual name.
- If multiple matches exist, prefer exact name matches over aliases.
- If the technology is not found, proceed with caution and explicitly tell the user that the item is missing from the TechRadar.
-
Evaluate the Ring:
- Adopt: Recommended technology, can be used freely.
- Hold: Technology to avoid or replace; the agent should propose alternatives or justify use if necessary.
- Other rings (e.g., "Trial", "Assess"): Evaluate on a case-by-case basis, but prefer "Adopt". Warn the user if the technology is not in "Adopt".
- If the ring is "Hold", the agent should warn the user and suggest alternative options from the techradar.
- If the ring is missing or empty, treat it as unknown and warn the user.
-
Cleanup:
- Remove the temporary file after use:
rm /tmp/techradar.json - This keeps the context clean.
- If you used a
mktempfile, ensure it is cleaned even on failures.
The TechRadar JSON is an object with the following structure:
{
"items": [
{
"name": "string", // Technology name (e.g., "typescript")
"ring": "string", // Recommendation ring: "adopt", "trial", "assess", "hold"
"quadrant": "string", // Category: "tools", "languages-and-frameworks", "methods-and-patterns", "platforms"
"title": "string", // Display title
"body": "string", // HTML description
"tags": ["string"], // Array of tags
"fileName": "string", // Path to markdown file
"flag": "string", // Status flag: "new", "default", etc.
"featured": "boolean", // Whether it's featured
"revisions": [...], // Historical versions (same structure)
"release": "string", // Release category
"angleFraction": "number", // Positioning for radar visualization
"radiusFraction": "number", // Positioning for radar visualization
"info": "string" // Additional info
}
],
"releases": ["string"] // Array of release categories
}Suppose the agent is generating code involving "TypeScript":
- Download:
curl -s https://pagopa.github.io/technology-radar/rd.json -o /tmp/techradar.json - Search (case-insensitive):
jq -r --arg name "typescript" '.items[] | select((.name // "") | ascii_downcase == ($name | ascii_downcase)) | .ring' /tmp/techradar.json - If the result is "adopt", proceed; if "hold", avoid and look for alternatives like other recommended technologies.
- Access to bash tools (curl, jq).
- jq must be installed on the system (common in Linux/Mac environments).
- The techradar JSON must be an object with an
itemsarray containing objects withnameandringproperties.