academic-research-comp…
Guide a research project through the full academic lifecycle — from raw idea to concrete research question, literature grounding,…
Scaffolds a complete React/Vite website project from site-config.json. Generates components, styles, and configuration based on the site type and plan data.
Claude Code
$ npx -y skills add GRCEngClub/claude-grc-engineering --skill website-build --agent claude-code
Codex
$ npx skills add GRCEngClub/claude-grc-engineering --skill website-build -a codex -y
Cursor
$ npx skills add GRCEngClub/claude-grc-engineering --skill website-build -a cursor -y
Gemini CLI
$ npx skills add GRCEngClub/claude-grc-engineering --skill website-build -a gemini-cli -y
GitHub Copilot
$ npx skills add GRCEngClub/claude-grc-engineering --skill website-build -a github-copilot -y
OpenCode
$ npx skills add GRCEngClub/claude-grc-engineering --skill website-build -a opencode -y
Windsurf
$ npx skills add GRCEngClub/claude-grc-engineering --skill website-build -a windsurf -y
name: website-build description: Scaffolds a complete React/Vite website project from site-config.json. Generates components, styles, and configuration based on the site type and plan data. allowed-tools: Bash, Read, Write, Edit, Glob
You are running the `/grc-portfolio:build` skill. Your job is to scaffold a complete, production-ready React/Vite website from the `site-config.json` created by `/grc-portfolio:plan`.
Find `site-config.json`:
Read it and validate that `status.planComplete === true`. If not, tell the user to run `/grc-portfolio:plan` first.
Read the `siteType` field to determine which components to generate.
Create the following structure in the project directory:
src/
main.jsx
App.jsx
App.css
index.css
components/
Navbar.jsx
Hero.jsx
Footer.jsx
ContactForm.jsx (if features.contactForm)
... (type-specific components)
assets/
index.html (Vite's entry HTML, references /src/main.jsx)
public/
favicon.svg
package.json
vite.config.js
.env.example
.gitignoreBase it on the toolkit's `examples/package.json` at `$TOOLKIT_DIR/examples/package.json`. Customize:
Copy from `$TOOLKIT_DIR/examples/vite.config.js` as-is. It's already well-configured for AWS deployment.
**Navbar.jsx** -- Navigation bar with:
**Hero.jsx** -- Full-width hero section with:
**Footer.jsx** -- Footer with:
**ContactForm.jsx** (if `features.contactForm`):
CSS reset and base styles. Set CSS custom properties based on `design.colorScheme`:
**navy-slate (GRC default):**
--color-primary: #1e3a5f; --color-primary-dark: #152a45; --color-secondary: #64748b; --color-accent: #3b82f6; --color-bg: #ffffff; --color-bg-alt: #f8fafc; --color-text: #1e293b; --color-text-light: #64748b;
**dark-charcoal:**
--color-primary: #818cf8; --color-primary-dark: #6366f1; --color-secondary: #94a3b8; --color-accent: #22d3ee; --color-bg: #0f172a; --color-bg-alt: #1e293b; --color-text: #f1f5f9; --color-text-light: #94a3b8;
**white-teal:**
--color-primary: #0d9488; --color-primary-dark: #0f766e; --color-secondary: #64748b; --color-accent: #06b6d4; --color-bg: #ffffff; --color-bg-alt: #f0fdfa; --color-text: #1e293b; --color-text-light: #64748b;
If `design.colorScheme` is "custom", use `design.primaryColor` and `design.accentColor` from config and derive the rest.
Component-level styles. Use the CSS custom properties from index.css. Style should match `design.style`:
**main.jsx:**
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import './index.css'
ReactDOM.createRoot(document.getElementById('root')).render(
<React.StrictMode>
<App />
</React.StrictMode>,
)**App.jsx:** Import and compose all generated components in order. Use a single-page layout with sections. Include smooth scrolling.
Write this file at the **project root** (`<projectDir>/index.html`), not under `public/`. Vite resolves the entry HTML from the project root, and `/src/main.jsx` is referenced as an absolute project-root path:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="{{site description from config}}" />
<title>{{site title from config}}</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>Open-source GRC Engineering resource for Claude. claude-grc-engineering turns technical evidence from cloud, SaaS, code, and security tools into framework-aligned findings, gap reports, remediation guidance, evidence packages, and OSCAL workflows.
Guide a research project through the full academic lifecycle — from raw idea to concrete research question, literature grounding,…
Expertise in evaluating AWS accounts for compliance — what checks are meaningful, which SCF controls they map to, and how to…
Use when interpreting AWS Secrets Manager connector output, deciding between inspector and retrieve modes, drafting SCF-mapped…
Expertise in evaluating Azure subscription findings from azure-inspector and mapping them to SCF controls.
Interpret CrowdStrike Falcon findings for sensor coverage, policy visibility, and host group scoping.
Interpret datadog-inspector findings and translate Datadog monitoring, audit, log-retention, SSO, and RBAC results into GRC…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…