tractatus/public/case-submission.html
TheFlow 2298d36bed fix(submissions): restructure Economist package and fix article display
- Create Economist SubmissionTracking package correctly:
  * mainArticle = full blog post content
  * coverLetter = 216-word SIR— letter
  * Links to blog post via blogPostId
- Archive 'Letter to The Economist' from blog posts (it's the cover letter)
- Fix date display on article cards (use published_at)
- Target publication already displaying via blue badge

Database changes:
- Make blogPostId optional in SubmissionTracking model
- Economist package ID: 68fa85ae49d4900e7f2ecd83
- Le Monde package ID: 68fa2abd2e6acd5691932150

Next: Enhanced modal with tabs, validation, export

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 08:47:42 +13:00

226 lines
9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Submit Case Study | Tractatus AI Safety</title>
<link rel="stylesheet" href="/css/fonts.css?v=1761163813">
<link rel="stylesheet" href="/css/tailwind.css?v=1761163813">
<link rel="stylesheet" href="/css/tractatus-theme.min.css?v=1761163813">
<style>
/* Accessibility: Skip link */
.skip-link { position: absolute; left: -9999px; top: 0; }
.skip-link:focus { left: 0; z-index: 100; background: white; padding: 1rem; border: 2px solid var(--tractatus-core-end); }
/* Accessibility: Focus indicators (WCAG 2.4.7) */
a:focus, button:focus, input:focus, select:focus, textarea:focus {
outline: 3px solid var(--tractatus-core-end);
outline-offset: 2px;
}
a:focus:not(:focus-visible) { outline: none; }
a:focus-visible { outline: 3px solid var(--tractatus-core-end); outline-offset: 2px; }
.form-group { margin-bottom: 1.5rem; }
.form-label {
display: block;
font-weight: 600;
color: #374151;
margin-bottom: 0.5rem;
}
.form-input, .form-textarea, .form-select {
width: 100%;
padding: 0.75rem;
border: 2px solid #e2e8f0;
border-radius: 0.5rem;
font-size: 1rem;
transition: all 0.2s ease;
}
.form-input:focus, .form-textarea:focus, .form-select:focus {
outline: none;
border-color: var(--tractatus-core-end);
box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.1);
transform: translateY(-1px);
}
.form-textarea { min-height: 150px; resize: vertical; }
.form-help { font-size: 0.875rem; color: #6b7280; margin-top: 0.25rem; }
.required { color: #dc2626; }
.checkbox-group {
display: flex;
align-items: center;
gap: 0.5rem;
}
.checkbox-group input[type="checkbox"] {
width: 1.25rem;
height: 1.25rem;
cursor: pointer;
}
#success-message, #error-message {
display: none;
padding: 1rem;
border-radius: 0.5rem;
margin-bottom: 1.5rem;
}
#success-message {
background-color: #d1fae5;
border: 1px solid #10b981;
color: #065f46;
}
#error-message {
background-color: #fee2e2;
border: 1px solid #ef4444;
color: #991b1b;
}
</style>
</head>
<body class="bg-gray-50">
<!-- Skip Link for Keyboard Navigation -->
<a href="#main-content" class="skip-link">Skip to main content</a>
<!-- Navigation (injected by navbar.js) -->
<script src="/js/components/navbar.js?v=1761163813"></script>
<!-- Main Content -->
<main id="main-content" class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<!-- Header -->
<div class="mb-8">
<h1 class="text-3xl font-bold text-gray-900 mb-3">Submit Case Study</h1>
<p class="text-lg text-gray-600 mb-4">
Share real-world examples of AI safety failures that could have been prevented by the Tractatus Framework.
</p>
<div class="bg-sky-50 border-l-4 p-4 rounded" class="border-l-tractatus">
<h3 class="font-semibold mb-2" class="text-tractatus-link">What makes a good case study?</h3>
<ul class="text-gray-700 text-sm space-y-1">
<li><strong>Documented failure:</strong> Real incident with evidence (not hypothetical)</li>
<li><strong>Clear failure mode:</strong> Specific way the AI system went wrong</li>
<li><strong>Tractatus relevance:</strong> Shows how framework boundaries could have helped</li>
<li><strong>Public interest:</strong> Contributes to AI safety knowledge</li>
</ul>
</div>
</div>
<!-- Messages -->
<div id="success-message" role="alert" aria-live="polite"></div>
<div id="error-message" role="alert" aria-live="assertive"></div>
<!-- Form -->
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-8">
<form id="case-submission-form">
<!-- Submitter Information -->
<h2 class="text-xl font-semibold text-gray-900 mb-6">Your Information</h2>
<div class="form-group">
<label for="submitter-name" class="form-label">
Your Name <span class="required">*</span>
</label>
<input type="text" id="submitter-name" name="submitter.name" class="form-input" required aria-required="true">
</div>
<div class="form-group">
<label for="submitter-email" class="form-label">
Email Address <span class="required">*</span>
</label>
<input type="email" id="submitter-email" name="submitter.email" class="form-input" required aria-required="true" aria-describedby="email-help">
<p id="email-help" class="form-help">We'll only use this to follow up on your submission</p>
</div>
<div class="form-group">
<label for="submitter-organization" class="form-label">
Organization (optional)
</label>
<input type="text" id="submitter-organization" name="submitter.organization" class="form-input">
</div>
<div class="form-group">
<div class="checkbox-group">
<input type="checkbox" id="submitter-public" name="submitter.public">
<label for="submitter-public" class="text-gray-700">
I consent to my name being published with this case study
</label>
</div>
<p class="form-help ml-7">Leave unchecked to remain anonymous</p>
</div>
<!-- Case Study Details -->
<h2 class="text-xl font-semibold text-gray-900 mb-6 mt-8">Case Study Details</h2>
<div class="form-group">
<label for="case-title" class="form-label">
Case Study Title <span class="required">*</span>
</label>
<input type="text" id="case-title" name="case_study.title" class="form-input" required aria-required="true" aria-describedby="title-help">
<p id="title-help" class="form-help">Brief, descriptive title (e.g., "ChatGPT Port 27027 Failure")</p>
</div>
<div class="form-group">
<label for="case-description" class="form-label">
Detailed Description <span class="required">*</span>
</label>
<textarea id="case-description" name="case_study.description" class="form-textarea" required aria-required="true" aria-describedby="description-help"></textarea>
<p id="description-help" class="form-help">What happened? Provide context, timeline, and outcomes</p>
</div>
<div class="form-group">
<label for="case-failure-mode" class="form-label">
Failure Mode <span class="required">*</span>
</label>
<textarea id="case-failure-mode" name="case_study.failure_mode" class="form-textarea" required aria-required="true" aria-describedby="failure-help"></textarea>
<p id="failure-help" class="form-help">
How did the AI system fail? What specific behavior went wrong?
</p>
</div>
<div class="form-group">
<label for="case-tractatus" class="form-label">
Tractatus Applicability <span class="required">*</span>
</label>
<textarea id="case-tractatus" name="case_study.tractatus_applicability" class="form-textarea" required aria-required="true" aria-describedby="tractatus-help"></textarea>
<p id="tractatus-help" class="form-help">
Which Tractatus boundaries could have prevented this failure? (e.g., Section 12.1 Values, CrossReferenceValidator, etc.)
</p>
</div>
<div class="form-group">
<label for="case-evidence" class="form-label">
Evidence/Sources
</label>
<textarea id="case-evidence" name="case_study.evidence" class="form-textarea"></textarea>
<p class="form-help">
Links to documentation, screenshots, articles, or other evidence (one per line)
</p>
</div>
<!-- Submit Button -->
<div class="mt-8">
<button type="submit" id="submit-button" class="w-full text-white px-6 py-3 rounded-lg font-semibold transition-all duration-200 hover:shadow-lg hover:-translate-y-0.5" class="bg-gradient-cyan-blue">
Submit Case Study
</button>
<p class="form-help mt-3 text-center">
We review all submissions. High-quality case studies are published with attribution (if consented).
</p>
</div>
</form>
</div>
<!-- Privacy Note -->
<div class="mt-6 text-sm text-gray-600 text-center">
<p>
Your submission is handled according to our
<a href="/about/values.html" class="hover:underline transition-colors" class="text-tractatus-link">privacy principles</a>.
All case studies undergo human review before publication.
</p>
</div>
</main>
<!-- Footer -->
<script src="/js/case-submission.js?v=1761163813"></script>
<!-- Footer Component -->
<script src="/js/components/footer.js?v=1761163813"></script>
</body>
</html>