mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 22:26:38 +03:00
Reconcile questionnaire branch with main's site split and redesign
Post-rebase repairs after main moved 226 commits (site/ split to the
private impeccable-site repo, DESIGN.md spec now eight sections, register
extraction replaced by extractSectionValue, seed mode rewritten):
- document.md: transplant this branch's seed pipeline (assets, interview,
visual cues, picker) onto main's rewritten file; adopt the canonical
section vocabulary. The interplay with new-work's workshop is left for
PR review.
- picker: vendor kinpaku tokens/kit CSS, hero art, and favicon under
picker/ (site/ no longer exists here); drop the sharp resize step and
ship the compressed JPEG directly; declare astro/sharp-free deps.
- picker-server: read the register via extractSectionValue('Register')
since extractRegister is gone from context.mjs.
- palette.mjs / utils.js / test-suites.mjs / package.json / release.mjs:
rebuild as main's version plus this branch's additions, undoing hunks
the -X theirs replay had clobbered.
- craft.md / shape.md: reset to main (this branch's net change was zero).
- progress bar: animate transform instead of width (design hook finding).
Validation: bun run build green (prose validators clean), bun run test
198/198, picker-server suite 7/7.
AI-assisted (agent-implemented, maintainer-directed).
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,18 +3,16 @@
|
||||
import { execFileSync } from 'node:child_process';
|
||||
import { cp, copyFile, mkdir, rm } from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
import sharp from 'sharp';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const buildDir = path.join(root, 'build-picker');
|
||||
const outputDir = path.join(root, 'skill/scripts/picker');
|
||||
const faviconSource = path.join(root, 'site/public/favicon.svg');
|
||||
// Static assets vendored under picker/assets/ (the site now lives in the
|
||||
// private impeccable-site repo, so the picker carries its own copies).
|
||||
const faviconSource = path.join(root, 'picker/assets/favicon.svg');
|
||||
const faviconOutput = path.join(outputDir, 'favicon.svg');
|
||||
const heroSource = path.join(
|
||||
root,
|
||||
'site/public/assets/neo-kinpaku/candidates/finalists/m-01-v2-01-light.png',
|
||||
);
|
||||
const heroSource = path.join(root, 'picker/assets/hero-light.jpg');
|
||||
const heroOutput = path.join(outputDir, 'assets/hero-light.jpg');
|
||||
|
||||
await rm(buildDir, { recursive: true, force: true });
|
||||
@@ -28,10 +26,7 @@ await rm(outputDir, { recursive: true, force: true });
|
||||
await cp(buildDir, outputDir, { recursive: true });
|
||||
await mkdir(path.dirname(heroOutput), { recursive: true });
|
||||
await copyFile(faviconSource, faviconOutput);
|
||||
await sharp(heroSource)
|
||||
.resize({ width: 1536, withoutEnlargement: true })
|
||||
.jpeg({ quality: 80, mozjpeg: true })
|
||||
.toFile(heroOutput);
|
||||
await copyFile(heroSource, heroOutput);
|
||||
await rm(buildDir, { recursive: true, force: true });
|
||||
|
||||
console.log(`Built ${path.relative(root, outputDir)}/`);
|
||||
|
||||
@@ -701,7 +701,7 @@ export function replacePlaceholders(content, provider, commandNames = [], allSki
|
||||
* their command prefix from lib/provider.mjs, whose declaration is replaced
|
||||
* here by an exact string match.
|
||||
*/
|
||||
export function replaceScriptProviderMarker(content, provider) {
|
||||
export function replaceScriptProviderMarker(content, provider, buildProvider = provider) {
|
||||
if (Buffer.isBuffer(content)) return content;
|
||||
const placeholders = PROVIDER_PLACEHOLDERS[provider] || PROVIDER_PLACEHOLDERS.cursor;
|
||||
const commandPrefix = placeholders.command_prefix || '/';
|
||||
|
||||
@@ -28,7 +28,6 @@ export const SUITES = {
|
||||
/^picker\//,
|
||||
/^scripts\/(?!benchmark-detector|build-browser-detector|build-extension)/,
|
||||
/^skill\/(SKILL\.src\.md|agents\/|reference\/|scripts\/(cleanup-deprecated|comp-diff|comp-spec|build-phase|font-match|data\/font-index|concept-seed|generate-image|context|context-signals|critique-storage|design-parser|doctor|hook|impeccable-paths|is-generated|lib\/(artifact-schema|png|raster|image-metrics|font-fingerprint|font-index|hero-checks|composition-catalog|concept-catalog|provider|staleness|staleness-deep|staleness-notice|surface-briefs|target-slug|template-extensions)|picker|pin|surface-brief))/,
|
||||
/^site\/(pages|content|components|layouts)\//,
|
||||
/^README(\.npm)?\.md$/,
|
||||
/^cli\/bin\//,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user