Sign inGet started

full-output-enforcement

by Leonxlnx/taste-skill · Agents, MCP & Prompting

A meta-skill that forces the AI to produce complete, unabridged outputs with no placeholders, truncation, or skipped sections.

Lift-13ppscreen tier · directional
86
Trustsecurity · quality · license · upkeep
Scan Saferisk 0/100
LicenseMITserved via MCP
Skill-matched tasks (generated, public + held-out) · glm-5.3-flash@cf
-13pp95% CI [-38, 0]unverified · screen tier
baseline 63% → skill 50% pass
trigger rate 88% · 24 trials

A/B outputs — median trial per arm

Same task, same model: without the skill (left) vs with it (right).

full-output-enforcement--m1
baseline · 1.00
```python
from flask import Flask, jsonify, request

app = Flask(__name__)

# In-memory data storage
todos = []
next_id = 1


@app.route("/todos", methods=["GET"])
def get_todos():
    return jsonify(todos), 200


@app.route("/todos", methods=["POST"])
def create_todo():
    global next_id
    data = request.get_json()
    if not data or "task" not in data or not isinstance(data["task"], str) or not data["task"].strip():
        return jsonify({"error": "Request must include a non-empty 'task' string"}), 400
    todo = {"id": next_id, "task": data["task"].strip()}
    todos.append(todo)
    next_id += 1
    return jsonify(todo), 201


@app.route("/todos/<int:id>", methods=["PUT"])
def update_todo(id):
    data = request.get_json()
    if not data or "task" not in data or not isinstance(data["task"], str) or not data["task"].strip():
        return jsonify({"error": "Request must include a non-empty 'task' string"}), 400
    for todo in todos:
        if todo["id"] == id:
            todo["task"] = data["task"].strip()
            return jsonify(todo), 200
    return jsonify({"error": "Todo not found"}), 404


@app.route("/todos/<int:id>", methods=["DELETE"])
def delete_todo(id):
    for todo in todos:
        if todo["id"] == id:
            todos.remove(todo)
            return jsonify({"deleted": id}), 200
    return jsonify({"error": "Todo not found"}), 404


if __name__ == "__main__":
    app.run(debug=True)
```
with skill · 1.00
```python
from flask import Flask, jsonify, request

app = Flask(__name__)

# In-memory data storage
todos = []
next_id = 1


@app.route("/todos", methods=["GET"])
def get_todos():
    return jsonify({"todos": todos}), 200


@app.route("/todos", methods=["POST"])
def create_todo():
    global next_id
    data = request.get_json()
    if not data or "task" not in data or not isinstance(data["task"], str) or not data["task"].strip():
        return jsonify({"error": "Request must include a non-empty 'task' string"}), 400
    todo = {"id": next_id, "task": data["task"].strip()}
    todos.append(todo)
    next_id += 1
    return jsonify(todo), 201


@app.route("/todos/<int:id>", methods=["PUT"])
def update_todo(id):
    data = request.get_json()
    if not data or "task" not in data or not isinstance(data["task"], str) or not data["task"].strip():
        return jsonify({"error": "Request must include a non-empty 'task' string"}), 400
    for todo in todos:
        if todo["id"] == id:
            todo["task"] = data["task"].strip()
            return jsonify(todo), 200
    return jsonify({"error": "Todo not found"}), 404


@app.route("/todos/<int:id>", methods=["DELETE"])
def delete_todo(id):
    for index, todo in enumerate(todos):
        if todo["id"] == id:
            todos.pop(index)
            return jsonify({"message": "Todo deleted"}), 200
    return jsonify({"error": "Todo not found"}), 404


if __name__ == "__main__":
    app.run(debug=True)
```
full-output-enforcement--m2
baseline · 0.15
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>EcoShop — Sustainable Living Made Simple</title>
<style>
  :root {
    --green-dark: #1b5e20;
    --green: #2e7d32;
    --green-light: #a5d6a7;
    --cream: #f7f5ef;
    --text: #263238;
    --white: #ffffff;
    --shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    --radius: 12px;
  }

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  html {
    scroll-behavior: smooth;
  }

  body {
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    color: var(--text);
    background-color: var(--cream);
    line-height: 1.6;
  }

  img {
    max-width: 100%;
    display: block;
  }

  a {
    text-decoration: none;
    color: inherit;
  }

  /* ---------- Navigation ---------- */
  .navbar {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 5%;
    background-color: var(--white);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }

  .logo {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--green-dark);
    letter-spacing: 0.5px;
  }

  .logo span {
    color: var(--green);
  }

  .nav-links {
    display: flex;
    gap: 28px;
    list-style: none;
  }

  .nav-links a {
    font-weight: 600;
    color: var(--text);
    transition: color 0.25s ease;
  }

  .nav-links a:hover {
    color: var(--green);
  }

  .cart-btn {
    background-color: var(--green);
    color: var(--white);
    border: none;
    padding: 10px 18px;
    border-radius: var(--radius);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.25s ease;
  }

  .cart-btn:hover {
    background-color: var(--green-dark);
  }

  .menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
  }

  .menu-toggle span {
    width: 26px;
    height: 3px;
    background-color: var(--green-dark);
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  /* ---------- Hero ---------- */
  .hero {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--white);
    background-image:
      linear-gradient(rgba(20, 45, 25, 0.55), rgba(20, 45, 25, 0.55)),
      url("https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=1600&q=80");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px 20px;
  }

  .hero-content h1 {
    font-size: clamp(2rem, 5vw, 3.5rem);
    margin-bottom: 16px;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
  }

  .hero-content p {
    font-size: clamp(1rem, 2.5vw, 1.3rem);
    max-width: 640px;
    margin: 0 auto 28px;
  }

  .hero-btn {
    display: inline-block;
    background-color: var(--green);
    color: var(--white);
    padding: 14px 34px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 1.05rem;
    transition: background-color 0.25s ease, transform 0.25s ease;
  }

  .hero-btn:hover {
    background-color: var(--green-dark);
    transform: translateY(-2px);
  }

  /* ---------- Products ---------- */
  .products {
    padding: 70px 5%;
    max-width: 1200px;
    margin: 0 auto;
  }

  .section-title {
    text-align: center;
    font-size: 2rem;
    color: var(--green-dark);
    margin-bottom: 40px;
  }

  .product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }

  .product-card {
    background-color: var(--white);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
  }

  .product-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
  }

  .product-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
  }

  .product-info {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
  }

  .product-info h3 {
    font-size: 1.2rem;
    margin-bottom: 6px;
    color: var(--green-dark);
  }

  .product-info .price {
    font-size: 1.15rem;
    font
with skill · 0.00
full-output-enforcement--m3
baseline · 1.00
```sql
-- Blogging platform schema (PostgreSQL)

CREATE TABLE users (
    id          BIGSERIAL PRIMARY KEY,
    username    VARCHAR(50)  NOT NULL UNIQUE,
    email       VARCHAR(255) NOT NULL UNIQUE,
    created_at  TIMESTAMPTZ  NOT NULL DEFAULT now()
);

CREATE TABLE posts (
    id            BIGSERIAL PRIMARY KEY,
    author_id     BIGINT      NOT NULL REFERENCES users (id) ON DELETE CASCADE,
    title         VARCHAR(255) NOT NULL,
    body          TEXT        NOT NULL,
    published_at  TIMESTAMPTZ
);

CREATE TABLE comments (
    id         BIGSERIAL PRIMARY KEY,
    post_id    BIGINT      NOT NULL REFERENCES posts (id) ON DELETE CASCADE,
    author_id  BIGINT      NOT NULL REFERENCES users (id) ON DELETE CASCADE,
    content    TEXT        NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);

CREATE TABLE tags (
    id   BIGSERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL UNIQUE
);

CREATE TABLE post_tags (
    post_id BIGINT NOT NULL REFERENCES posts (id) ON DELETE CASCADE,
    tag_id  BIGINT NOT NULL REFERENCES tags (id) ON DELETE CASCADE,
    PRIMARY KEY (post_id, tag_id)
);

-- Indexes on foreign key columns
CREATE INDEX idx_posts_author_id    ON posts (author_id);
CREATE INDEX idx_comments_post_id   ON comments (post_id);
CREATE INDEX idx_comments_author_id ON comments (author_id);
CREATE INDEX idx_post_tags_tag_id   ON post_tags (tag_id);
```
with skill · 1.00
```sql
-- ============================================================
-- Blogging Platform Schema (PostgreSQL)
-- ============================================================

BEGIN;

-- ------------------------------------------------------------
-- users
-- ------------------------------------------------------------
CREATE TABLE users (
    id          BIGSERIAL PRIMARY KEY,
    username    VARCHAR(50)  NOT NULL UNIQUE,
    email       VARCHAR(255) NOT NULL UNIQUE,
    created_at  TIMESTAMPTZ  NOT NULL DEFAULT now()
);

-- ------------------------------------------------------------
-- posts
-- ------------------------------------------------------------
CREATE TABLE posts (
    id            BIGSERIAL PRIMARY KEY,
    author_id     BIGINT      NOT NULL REFERENCES users (id) ON DELETE CASCADE,
    title         VARCHAR(255) NOT NULL,
    body          TEXT         NOT NULL,
    published_at  TIMESTAMPTZ
);

-- ------------------------------------------------------------
-- comments
-- ------------------------------------------------------------
CREATE TABLE comments (
    id         BIGSERIAL PRIMARY KEY,
    post_id    BIGINT       NOT NULL REFERENCES posts (id) ON DELETE CASCADE,
    author_id  BIGINT       NOT NULL REFERENCES users (id) ON DELETE CASCADE,
    content    TEXT         NOT NULL,
    created_at TIMESTAMPTZ  NOT NULL DEFAULT now()
);

-- ------------------------------------------------------------
-- tags
-- ------------------------------------------------------------
CREATE TABLE tags (
    id   BIGSERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL UNIQUE
);

-- ------------------------------------------------------------
-- post_tags (many-to-many join table)
-- ------------------------------------------------------------
CREATE TABLE post_tags (
    post_id BIGINT NOT NULL REFERENCES posts (id) ON DELETE CASCADE,
    tag_id  BIGINT NOT NULL REFERENCES tags (id) ON DELETE CASCADE,
    PRIMARY KEY (post_id, tag_id)
);

-- ------------------------------------------------------------
-- Indexes on foreign key columns
-- ------------------------------------------------------------
CREATE INDEX idx_posts_author_id      ON posts (author_id);
CREATE INDEX idx_comments_post_id     ON comments (post_id);
CREATE INDEX idx_comments_author_id   ON comments (author_id);
CREATE INDEX idx_post_tags_tag_id     ON post_tags (tag_id);
-- (post_id in post_tags is covered by the composite primary key's leading column)

COMMIT;
```
full-output-enforcement--m4
baseline · 0.67
```javascript
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { makeExecutableSchema } = require('graphql-tools');

// In-memory data storage
const authors = [
  { id: '1', name: 'George Orwell' },
  { id: '2', name: 'Jane Austen' },
];

const books = [
  { id: '1', title: '1984', author: 'George Orwell', publishedYear: 1949 },
  { id: '2', title: 'Animal Farm', author: 'George Orwell', publishedYear: 1945 },
  { id: '3', title: 'Pride and Prejudice', author: 'Jane Austen', publishedYear: 1813 },
];

// Type definitions
const typeDefs = `
  type Book {
    id: ID!
    title: String!
    author: String!
    publishedYear: Int!
  }

  type Author {
    id: ID!
    name: String!
    books: [Book!]!
  }

  type Query {
    books: [Book!]!
    book(id: ID!): Book
    authors: [Author!]!
    author(id: ID!): Author
  }
`;

// Resolvers
const resolvers = {
  Query: {
    books: () => books,
    book: (parent, args) => books.find((b) => b.id === args.id) || null,
    authors: () => authors,
    author: (parent, args) => authors.find((a) => a.id === args.id) || null,
  },
  Author: {
    books: (parent) => books.filter((b) => b.author === parent.name),
  },
};

// Build executable schema
const schema = makeExecutableSchema({
  typeDefs,
  resolvers,
});

// Express server setup
const app = express();

app.use(
  '/graphql',
  graphqlHTTP({
    schema,
    graphiql: true,
  })
);

const PORT = 4000;
app.listen(PORT, () => {
  console.log(`GraphQL server running at http://localhost:${PORT}/graphql`);
});
```

Dependencies: `npm install express express-graphql graphql-tools graphql`
with skill · 0.67
```javascript
// server.js
// Dependencies: npm install express express-graphql graphql graphql-tools

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { makeExecutableSchema } = require('graphql-tools');

// ---------- In-memory data storage ----------

const books = [
  { id: '1', title: 'The Hobbit', author: 'J.R.R. Tolkien', publishedYear: 1937 },
  { id: '2', title: '1984', author: 'George Orwell', publishedYear: 1949 },
  { id: '3', title: 'Animal Farm', author: 'George Orwell', publishedYear: 1945 }
];

const authors = [
  { id: '1', name: 'J.R.R. Tolkien' },
  { id: '2', name: 'George Orwell' }
];

// ---------- Schema definition (graphql-tools syntax) ----------

const typeDefs = `
  type Book {
    id: ID!
    title: String!
    author: String!
    publishedYear: Int!
  }

  type Author {
    id: ID!
    name: String!
    books: [Book!]!
  }

  type Query {
    books: [Book!]!
    book(id: ID!): Book
    authors: [Author!]!
    author(id: ID!): Author
  }
`;

// ---------- Resolvers ----------

const resolvers = {
  Query: {
    books: () => books,
    book: (parent, args) => books.find(book => book.id === args.id) || null,
    authors: () => authors,
    author: (parent, args) => authors.find(author => author.id === args.id) || null
  },
  Author: {
    books: (parent) => books.filter(book => book.author === parent.name)
  }
};

// ---------- Schema assembly ----------

const schema = makeExecutableSchema({
  typeDefs,
  resolvers
});

// ---------- Express server setup ----------

const app = express();

app.use(
  '/graphql',
  graphqlHTTP({
    schema,
    graphiql: true
  })
);

const PORT = 4000;

app.listen(PORT, () => {
  console.log(`GraphQL server running at http://localhost:${PORT}/graphql`);
});
```
full-output-enforcement--m5
baseline · 1.00
1. Alabama – AL
2. Alaska – AK
3. Arizona – AZ
4. Arkansas – AR
5. California – CA
6. Colorado – CO
7. Connecticut – CT
8. Delaware – DE
9. Florida – FL
10. Georgia – GA
11. Hawaii – HI
12. Idaho – ID
13. Illinois – IL
14. Indiana – IN
15. Iowa – IA
16. Kansas – KS
17. Kentucky – KY
18. Louisiana – LA
19. Maine – ME
20. Maryland – MD
21. Massachusetts – MA
22. Michigan – MI
23. Minnesota – MN
24. Mississippi – MS
25. Missouri – MO
26. Montana – MT
27. Nebraska – NE
28. Nevada – NV
29. New Hampshire – NH
30. New Jersey – NJ
31. New Mexico – NM
32. New York – NY
33. North Carolina – NC
34. North Dakota – ND
35. Ohio – OH
36. Oklahoma – OK
37. Oregon – OR
38. Pennsylvania – PA
39. Rhode Island – RI
40. South Carolina – SC
41. South Dakota – SD
42. Tennessee – TN
43. Texas – TX
44. Utah – UT
45. Vermont – VT
46. Virginia – VA
47. Washington – WA
48. West Virginia – WV
49. Wisconsin – WI
50. Wyoming – WY
with skill · 1.00
1. Alabama – AL
2. Alaska – AK
3. Arizona – AZ
4. Arkansas – AR
5. California – CA
6. Colorado – CO
7. Connecticut – CT
8. Delaware – DE
9. Florida – FL
10. Georgia – GA
11. Hawaii – HI
12. Idaho – ID
13. Illinois – IL
14. Indiana – IN
15. Iowa – IA
16. Kansas – KS
17. Kentucky – KY
18. Louisiana – LA
19. Maine – ME
20. Maryland – MD
21. Massachusetts – MA
22. Michigan – MI
23. Minnesota – MN
24. Mississippi – MS
25. Missouri – MO
26. Montana – MT
27. Nebraska – NE
28. Nevada – NV
29. New Hampshire – NH
30. New Jersey – NJ
31. New Mexico – NM
32. New York – NY
33. North Carolina – NC
34. North Dakota – ND
35. Ohio – OH
36. Oklahoma – OK
37. Oregon – OR
38. Pennsylvania – PA
39. Rhode Island – RI
40. South Carolina – SC
41. South Dakota – SD
42. Tennessee – TN
43. Texas – TX
44. Utah – UT
45. Vermont – VT
46. Virginia – VA
47. Washington – WA
48. West Virginia – WV
49. Wisconsin – WI
50. Wyoming – WY
Limitations
  • Agent noise: single-model results vary run to run; the confidence interval reflects task-level variance.
  • Screen tier (1 trial/arm) is a directional gate, not a verified claim.
  • Results are for the SkillzBench Reference Agent on glm-5.3-flash@cf and do not necessarily transfer to other agents or models.
  • Task coverage: Skill-matched tasks (generated, public + held-out) only; a skill can shine elsewhere.