
full-output-enforcement
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
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;
fontwith 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.