← Back to Skills Marketplace
nijam727

sai creator ai

by Nijam · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
26
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install sai-creator
Description
SAI — frontend builder untuk pipeline intel OJS/PKP. Render candidate yang sudah PASS dari SENKU menjadi tiga deliverable. Pertama, halaman artikel HTML sema...
README (SKILL.md)

SAI — Frontend Builder

Render candidate intel OJS/PKP yang sudah lolos QA SENKU menjadi tiga artefak siap publish: halaman artikel HTML, carousel 7-slide, caption sosial opsional. Tidak menulis konten dari nol — hanya transform brief tervalidasi menjadi output visual + markup yang konsisten dengan standar editorial.

Input Contract

SAI menerima brief_for_next dari SENKU (saat verdict PASS dari CONAN). Format:

TITLE: \x3Ctitle>
AUDIENCE: \x3Ceditor|reviewer|author|publisher|developer|admin, joined>
TAGS: \x3Crelevance_tags joined>
KEY_POINTS:
  - \x3Cpoint 1>
  - \x3Cpoint 2>
  - \x3Cpoint 3..7>
PRIMARY_SOURCE: \x3Curl>
SECONDARY_SOURCES:
  - \x3Curl>
TONE_CONSTRAINT: factual, no promotional adjectives, ≤15-word quotes max 1 per source
LENGTH_TARGET: 400-700 kata

Plus candidate_json lengkap (untuk traceability + halusinasi guard di SENKU re-validation).

Jika brief tidak lengkap atau tidak ada candidate_json referensi → STOP, kembalikan ke SENKU dengan flag brief_incomplete. Jangan tulis konten yang tidak ada di brief.

Workflow Decision Tree

brief_for_next received
        │
        ▼
1. Parse brief + candidate_json
        │
        ▼
2. Generate artikel HTML (assets/article-template.html → render)
        │
        ▼
3. Generate carousel 1080x1080 (assets/carousel-1080.svg.tpl)
        │
        ▼
4. Generate carousel 1200x675 (assets/carousel-1200x675.svg.tpl)
        │
        ▼
5. (Optional) Generate captions (assets/caption-templates.json)
        │
        ▼
6. Validate output (scripts/validate_output.py)
        │  ├─ HTML \x3C100KB inline CSS
        │  ├─ Alt text ada di semua \x3Cimg>
        │  ├─ Kontras WCAG AA ≥4.5:1
        │  ├─ schema.org/Article valid
        │  └─ CTA URL = https://openjournaltheme.com/
        ▼
7. Emit handoff JSON ke SENKU

Deliverable 1: Artikel HTML

Template: assets/article-template.html. Detail lengkap struktur, meta tags wajib, schema.org/Article shape: references/article-template-spec.md.

Wajib ada di output:

  • \x3Cmeta charset>, \x3Cmeta name="viewport">, \x3Cmeta name="description">
  • Open Graph tags: og:title, og:description, og:type=article, og:image, og:url
  • Twitter Card: twitter:card=summary_large_image
  • JSON-LD schema.org/Article dengan headline, datePublished, author, publisher, mainEntityOfPage
  • \x3Carticle> semantic dengan \x3Cheader>, \x3Csection>, \x3Cfooter>
  • Source attribution block: \x3Caside class="sources"> dengan link PRIMARY_SOURCE + SECONDARY_SOURCES
  • Lazy-load: \x3Cimg loading="lazy" decoding="async">

Tone: factual. Hapus adjektif promosi. Verbatim quotes \x3C15 kata, max 1 per sumber, dalam \x3Cblockquote cite="...">.

Deliverable 2: Carousel 7-Slide

Struktur fix (tidak boleh diubah):

Slide Konten Sumber data
1 Hook headline + visual anchor TITLE + visual abstract
2 Konteks: apa & kapan published_at + 1-2 kalimat ringkas
3 Key point #1 KEY_POINTS[0]
4 Key point #2 KEY_POINTS[1]
5 Key point #3 KEY_POINTS[2]
6 Implikasi praktis untuk pengelola jurnal Disimpulkan dari audience_fit + actionable framing
7 CTA ke https://openjournaltheme.com/ Varian copy dari references/cta-variants.md

Dimensi:

  • 1080×1080 (Instagram, Facebook square) → assets/carousel-1080.svg.tpl
  • 1200×675 (LinkedIn, X/Twitter) → assets/carousel-1200x675.svg.tpl

Render via scripts/render_carousel.py \x3Cbrief.json> \x3Cdimension> \x3Coutput.svg>.

Detail tipografi, palette, hierarchy: references/carousel-spec.md.

Deliverable 3: Caption Sosial (opsional)

Template: assets/caption-templates.json. Tiga varian: LinkedIn (formal, 1300-1700 char), X/Twitter (≤280 char dengan thread split), Instagram (engaging, 125-2200 char dengan line breaks + hashtag block di akhir).

Generate hanya jika user/SENKU explicit request dengan flag include_captions: true.

Standar Teknis (NON-NEGOTIABLE)

Aspek Konstrain
Stack HTML5 + Tailwind CDN atau plain CSS. Tidak ada React, Vue, Svelte, jQuery.
Inline CSS budget \x3C100KB total
Images loading="lazy" decoding="async", format WebP/AVIF preferred
A11y WCAG AA: kontras ≥4.5:1 (text), ≥3:1 (UI components), focus ring visible
Alt text Wajib di semua \x3Cimg>, deskriptif (bukan "image" / "photo")
Carousel HTML/SVG only, no Canvas API runtime, no JS animation library
Font System font stack atau Google Fonts via \x3Clink rel="preconnect">
Color tokens Lihat references/carousel-spec.md palette

Submission ke SENKU

Setelah validate pass, emit handoff JSON:

{
  "article_id": "uuid candidate dari brief",
  "html_artifact_url": "path atau URL artefak HTML",
  "carousel_artifact_url": {
    "1080x1080": "path/url SVG square",
    "1200x675":  "path/url SVG landscape"
  },
  "captions": {
    "linkedin": "string|null",
    "x":        "string|null",
    "instagram": "string|null"
  },
  "cta_position": "slide-7",
  "cta_url": "https://openjournaltheme.com/",
  "cta_variant_used": "string (label dari cta-variants.md)",
  "validation_report": {
    "html_size_bytes": 0,
    "alt_text_coverage": 1.0,
    "contrast_min_ratio": 4.5,
    "schema_org_valid": true
  },
  "rendered_at": "ISO-8601 UTC"
}

SENKU akan re-validate untuk halusinasi (entitas/angka di output harus match candidate_json). Iterasi maks 3 sebelum auto-REJECT.

CTA Rotation

Slide 7 selalu point ke https://openjournaltheme.com/. Copy varian dirotasi dari references/cta-variants.md. Jangan pakai varian yang sama dalam 5 artikel berturut-turut (track via cta_variant_used di handoff log).

Forbidden Patterns

Auto-fail validation jika output mengandung:

  1. Adjektif promosi: "revolutionary", "groundbreaking", "must-have", "ultimate", "best-ever", "wajib", "luar biasa" (di body artikel — boleh di carousel hook hanya jika ada di brief).
  2. Klaim/angka/entitas yang tidak ada di candidate_json (halusinasi).
  3. CTA selain https://openjournaltheme.com/.
  4. Verbatim quote ≥15 kata atau >1 kutipan per sumber.
  5. \x3Cimg> tanpa alt text.
  6. Inline \x3Cscript> yang melakukan analytics/tracking pihak ketiga.
  7. External CDN selain: cdn.tailwindcss.com, fonts.googleapis.com, fonts.gstatic.com.

Resources

  • references/article-template-spec.md — Spec lengkap meta tags, OG, schema.org/Article, semantic HTML structure.
  • references/carousel-spec.md — Palette, tipografi, hierarchy, A11y carousel.
  • references/cta-variants.md — Daftar varian copy CTA slide 7.
  • assets/article-template.html — Boilerplate HTML5 siap-render.
  • assets/carousel-1080.svg.tpl — Template SVG 1080×1080 (placeholder {{TITLE}}, {{KEY_POINT_N}}, dll.).
  • assets/carousel-1200x675.svg.tpl — Template SVG 1200×675.
  • assets/caption-templates.json — Skeleton caption per platform.
  • scripts/render_carousel.py — Render template SVG dari brief JSON.
  • scripts/validate_output.py — Cek size, alt text, kontras, CTA, halusinasi.
  • scripts/package_skill.py — Inherited dari skill-creator untuk repackaging.
  • scripts/quick_validate.py — Inherited dari skill-creator untuk validasi struktur skill.

Best Practices

  1. Tidak menambah konten. Jika brief kurang detail untuk slide 6 (implikasi), kembalikan ke SENKU dengan REVISE request — jangan improvisasi.
  2. Validate sebelum submit. Selalu jalankan scripts/validate_output.py sebelum emit handoff.
  3. CTA rotation log. Catat cta_variant_used agar SENKU bisa enforce no-repeat-in-5.
  4. Schema.org wajib valid. Test dengan https://validator.schema.org/ jika ragu.
  5. Carousel adalah SVG, bukan PNG. Resolution-independent, kecil, accessible (text in \x3Ctext> tetap selectable).
  6. Source attribution di artikel HTML. \x3Caside> dengan link ke PRIMARY_SOURCE + SECONDARY_SOURCES — bukan footnote, bukan tersembunyi.
  7. Tidak ada inline analytics. Tracking dilakukan di luar artefak (di host page).
Usage Guidance
Review generated HTML/SVG before publishing, especially if briefs come from external or web-derived sources. The skill does not look malicious, but it should add proper escaping/sanitization and the fixed openjournaltheme.com CTA should be acceptable for your use case.
Capability Analysis
Type: OpenClaw Skill Name: sai-creator Version: 1.0.0 The skill bundle is a specialized frontend builder designed to transform journal article data into HTML pages and social media carousels. The Python scripts (render_carousel.py, validate_output.py) are functional utilities for template substitution and QA validation, showing no signs of malicious logic, data exfiltration, or unauthorized command execution. The instructions in SKILL.md and assets are strictly focused on maintaining editorial standards, accessibility (WCAG AA), and technical constraints for the OpenJournalTheme ecosystem.
Capability Tags
crypto
Capability Assessment
Purpose & Capability
The frontend-builder purpose is coherent, but the carousel renderer inserts brief/candidate values into generated artifacts with raw string replacement and no visible context escaping, which is risky for publish-ready output.
Instruction Scope
The instructions are generally scoped to validated SENKU briefs and stop on incomplete input, but they also always add a fixed CTA to openjournaltheme.com, which users should expect in generated assets.
Install Mechanism
There is no install spec and no required binary declaration, but Python helper scripts are included and registry/package metadata is inconsistent; this is a provenance/package hygiene issue rather than evidence of malware.
Credentials
No credentials, environment variables, network APIs, or privileged system access are requested. Local file reads/writes for brief, candidate, and output artifacts are proportionate to the stated rendering workflow.
Persistence & Privilege
No background service, privilege escalation, credential/session use, or autonomous persistence is shown in the provided artifacts.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install sai-creator
  3. After installation, invoke the skill by name or use /sai-creator
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of the SAI frontend builder skill for OJS/PKP journal pipelines. - Renders validated article briefs into three deliverables: semantic HTML article, 7-slide carousel (two dimensions), and optional social captions. - Enforces strict content and accessibility standards, including WCAG AA, alt text requirements, and maximum CSS budget. - Emits a unified handoff JSON with validation metrics for each output. - Integrates CTA rotation, hallucination guard, and explicit input contract from SENKU. - Supports only HTML5 with Tailwind CDN or plain CSS, prioritizing fast, accessible, and SEO-ready output.
Metadata
Slug sai-creator
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is sai creator ai?

SAI — frontend builder untuk pipeline intel OJS/PKP. Render candidate yang sudah PASS dari SENKU menjadi tiga deliverable. Pertama, halaman artikel HTML sema... It is an AI Agent Skill for Claude Code / OpenClaw, with 26 downloads so far.

How do I install sai creator ai?

Run "/install sai-creator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is sai creator ai free?

Yes, sai creator ai is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does sai creator ai support?

sai creator ai is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created sai creator ai?

It is built and maintained by Nijam (@nijam727); the current version is v1.0.0.

💬 Comments