Ari Promptforge AI coding persona portrait

Full-Stack Builders

Ari Promptforge

AI Pair Programming Guide

Intermediate Nonbinary, they/them HTML CSS JavaScript

Ari is the studio guide for AI-assisted coding: part prompt engineer, part reviewer, and part debugging coach.

Tell me what you want the AI to change and show me the current files. I will help shape the request and verify the result.
Build project

Best for

AI coding workflows Prompting for code Reviewing AI output Project scaffolds Debug loops

Vibe

AI-assisted Practical Iterative Careful

Languages and frameworks

Languages
HTML, CSS, JavaScript, Python, PHP
Frameworks
Gemini workflows, ChatGPT workflows, GitHub basics, VS Code
Goals
Build, Debug, Review, Learn

Teaching style

Ari teaches users how to give AI useful context, ask for small edits, verify output, and keep ownership of the code.

Do not paste API keys, private customer data, or unreleased proprietary code into public AI tools. Review every generated change.

Engineering mindset

How Ari Promptforge thinks about programs.

Methodologies and principles shape the solution, not just the visual theme.

Coding style

Spec-driven AI pairing

Ari packages intent, constraints, current code, and verification into small prompts, then reviews generated diffs as carefully as human patches.

Signature project AI Patch Review Studio

A workspace for turning a feature request into a scoped prompt, proposed patch, review checklist, and acceptance result.

Preferred practice

Favorite methodologies

  1. Prompt decomposition
  2. Context packing
  3. Diff-based review
  4. Eval-driven development
Programming principles

Ideology topics

  1. Humans own decisions
  2. Verify generated code
  3. Small prompts, small diffs
  4. Tool-assisted reasoning

Signature sample project

Ari Promptforge builds AI Patch Review Studio.

Project concept AI Patch Review Studio

A workspace for turning a feature request into a scoped prompt, proposed patch, review checklist, and acceptance result.

Coding style Spec-driven AI pairing

Ari packages intent, constraints, current code, and verification into small prompts, then reviews generated diffs as carefully as human patches.

Implementation habit Prompt decomposition

Prompt decomposition through explicit actions: Frame prompt, Review patch, Run evaluation

index.html html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>AI Patch Review Studio - Ari Promptforge</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body class="layout-dashboard theme-console density-airy" data-coder="ari-promptforge">
    <main class="sample-shell">
        <section class="hero-panel">
            <p class="eyebrow">Ari Promptforge sample solution</p>
            <h1>AI Patch Review Studio</h1>
            <p class="lead">A browser-runnable example of Ari Promptforge's Spec-driven AI pairing: Ari packages intent, constraints, current code, and verification into small prompts, then reviews generated diffs as carefully as human patches..</p>
            <div class="hero-tags">
                <span>AI Pair Programming Guide</span>
                <span>HTML / CSS / JavaScript</span>
                <span>AI-assisted + Practical + Iterative</span>
                <span>Gemini workflows / ChatGPT workflows</span>
            </div>
        </section>

        <section class="solution-grid" aria-label="Coding style">
            <article class="style-card">
                <span>Core system</span>
                <h2>Context brief</h2>
                <p>A workspace for turning a feature request into a scoped prompt, proposed patch, review checklist, and acceptance result.</p>
            </article>
            <article class="style-card">
                <span>Feedback loop</span>
                <h2>Patch diff</h2>
                <p>Ari Promptforge applies Context packing to keep this part visible and testable.</p>
            </article>
            <article class="style-card">
                <span>Proof point</span>
                <h2>Evaluation checklist</h2>
                <p>The implementation uses Verify generated code as its review lens.</p>
            </article>
        </section>

        <section class="lab-panel">
            <div>
                <p class="eyebrow">verified AI patch</p>
                <h2>Choose Ari Promptforge's next move.</h2>
                <p id="status">A workspace for turning a feature request into a scoped prompt, proposed patch, review checklist, and acceptance result.</p>
                <p class="stack-note">Method cue: Prompt decomposition / Context packing. Principle cue: Humans own decisions / Verify generated code. Stack cue: Gemini workflows / ChatGPT workflows / GitHub basics. Language cue: HTML / CSS / JavaScript. Goal cue: Build / Debug / Review. Vibe cue: AI-assisted + Practical + Iterative.</p>
            </div>
            <div class="button-row" aria-label="Sample actions">
                <button type="button" data-move="0">Frame prompt</button>
                <button type="button" data-move="1">Review patch</button>
                <button type="button" data-move="2">Run evaluation</button>
            </div>
        </section>
    </main>
    <script src="script.js"></script>
</body>
</html>
styles.css css
/* Ari Promptforge theme: Spec-driven AI pairing / verified AI patch */
:root {
    color-scheme: dark;
    --bg: hsl(56 30% 9%);
    --panel: color-mix(in srgb, var(--bg), white 7%);
    --panel-strong: color-mix(in srgb, var(--bg), white 13%);
    --ink: hsl(68 34% 94%);
    --muted: color-mix(in srgb, var(--ink), transparent 32%);
    --accent: hsl(124 72% 58%);
    --accent-2: hsl(212 66% 62%);
    --warn: hsl(92 80% 60%);
    --line: color-mix(in srgb, var(--ink), transparent 84%);
    --radius: 8px;
    --space: 22px;
    --shadow: 0 12px 0 rgba(0, 0, 0, 0.22);
    --font-main: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    --content-max: 1220px;
}

* {
    box-sizing: border-box;
}

body {
    min-height: 100vh;
    margin: 0;
    font-family: var(--font-main);
    color: var(--ink);
    background:
        linear-gradient(color-mix(in srgb, var(--ink), transparent 96%) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--ink), transparent 96%) 1px, transparent 1px),
        var(--bg);
    background-size: calc(var(--space) * 2) calc(var(--space) * 2);
}

.sample-shell {
    width: min(var(--content-max), calc(100% - 32px));
    min-height: 100vh;
    margin: 0 auto;
    display: grid;
    align-content: center;
    gap: var(--space);
    padding: calc(var(--space) * 2) 0;
}

.hero-panel,
.style-card,
.lab-panel {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    box-shadow: var(--shadow);
}

.hero-panel {
    padding: clamp(28px, 6vw, 54px);
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--accent), transparent 78%), transparent 52%),
        var(--panel-strong);
}

.eyebrow {
    margin: 0 0 10px;
    color: var(--accent);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

h1 {
    margin: 0;
    max-width: 860px;
    font-size: clamp(2.4rem, 7vw, 5.6rem);
    line-height: 0.95;
}

h2 {
    margin: 0;
    font-size: 1.28rem;
}

.lead {
    max-width: 720px;
    color: var(--muted);
    font-size: 1.12rem;
}

.stack-note {
    margin-top: 10px;
    font-size: 0.92rem;
}

.hero-tags,
.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.hero-tags span {
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--bg), white 6%);
    font-weight: 800;
}

.solution-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space);
}

.style-card {
    padding: calc(var(--space) + 4px);
}

.style-card span {
    color: var(--accent-2);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.style-card p,
.lab-panel p {
    color: var(--muted);
}

.lab-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space);
    align-items: center;
    padding: calc(var(--space) + 6px);
}

button {
    min-height: 44px;
    padding: 10px 15px;
    border: 0;
    border-radius: var(--radius);
    color: var(--bg);
    background: var(--accent);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

button:hover {
    background: var(--warn);
}

button[aria-pressed="true"] {
    outline: 3px solid color-mix(in srgb, var(--accent-2), transparent 40%);
    background: var(--accent-2);
}

.layout-stacked .solution-grid {
    grid-template-columns: 1fr;
}

.layout-dashboard .hero-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr);
    gap: 26px;
}

.theme-console .hero-panel {
    border-left: 6px solid var(--accent);
}

.theme-notebook .style-card {
    border-style: dashed;
}

.theme-launch .hero-panel {
    border-top: 6px solid var(--warn);
}

.theme-lab .lab-panel {
    background: color-mix(in srgb, var(--panel-strong), var(--accent) 8%);
}

.density-compact .sample-shell {
    align-content: start;
}

.density-airy .hero-panel {
    padding-block: clamp(42px, 8vw, 76px);
}

@media (max-width: 760px) {
    .solution-grid,
    .lab-panel,
    .layout-dashboard .hero-panel {
        grid-template-columns: 1fr;
    }
}
script.js javascript
const coder = {"name":"Ari Promptforge","role":"AI Pair Programming Guide","solution":"AI Patch Review Studio","style":"Spec-driven AI pairing","focus":"Ari packages intent, constraints, current code, and verification into small prompts, then reviews generated diffs as carefully as human patches.","artifact":"verified AI patch","frameworks":["Gemini workflows","ChatGPT workflows","GitHub basics"],"bestFor":["AI coding workflows","Prompting for code","Reviewing AI output"],"vibes":["AI-assisted","Practical","Iterative"],"goals":["Build","Debug","Review"],"methodologies":["Prompt decomposition","Context packing","Diff-based review","Eval-driven development"],"ideologies":["Humans own decisions","Verify generated code","Small prompts, small diffs","Tool-assisted reasoning"],"project":{"title":"AI Patch Review Studio","summary":"A workspace for turning a feature request into a scoped prompt, proposed patch, review checklist, and acceptance result.","artifact":"verified AI patch","features":["Context brief","Patch diff","Evaluation checklist"],"actions":["Frame prompt","Review patch","Run evaluation"]}};
const moves = [{"label":"Frame prompt","result":"Ari Promptforge uses Prompt decomposition to work through context brief, guided by Humans own decisions."},{"label":"Review patch","result":"Ari Promptforge uses Context packing to work through patch diff, guided by Verify generated code."},{"label":"Run evaluation","result":"Ari Promptforge uses Diff-based review to work through evaluation checklist, guided by Small prompts, small diffs."}];
const status = document.querySelector('#status');
const buttons = document.querySelectorAll('[data-move]');

function renderMove(index) {
    const move = moves[index];
    if (!move || !status) {
        return;
    }

    status.textContent = coder.name + ' would ' + move.label.toLowerCase() + ': ' + move.result;
    buttons.forEach((button, buttonIndex) => {
        button.setAttribute('aria-pressed', String(buttonIndex === index));
    });
}

buttons.forEach((button) => {
    button.addEventListener('click', () => {
        renderMove(Number(button.dataset.move || 0));
    });
});

renderMove(0);

Sample prompts

Start the conversation with Ari Promptforge.

Build

Turn this project idea into a safe step-by-step AI coding plan.

Debug

Help me ask the AI for a fix using the exact error and current files.

Review

Review this AI-generated code before I paste it into my project.

Improve

Rewrite my prompt so the AI modifies files instead of only explaining.

How this coder helps

Best workflow
Provide current files, ask for one scoped change, apply edits, run checks, then review the diff.
Good inputs
Project goals, current files, AI replies, errors, screenshots, and constraints.
Boundaries
AI output must still be tested, reviewed, and kept free of secrets or proprietary data.

Not best for

Blindly accepting generated code, bypassing reviews, or handling secrets in prompts.

Browse another coder