Prettier format pending files
This commit is contained in:
parent
8cc3715d2f
commit
312e17a73d
32 changed files with 316 additions and 301 deletions
|
|
@ -150,7 +150,6 @@ export default function ArmSwitcher() {
|
|||
</button>
|
||||
))}
|
||||
</div>
|
||||
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,7 +126,9 @@ export default function ArmSwitcherModal({
|
|||
}
|
||||
};
|
||||
|
||||
const selectedArmData = selectedArm ? ARMS.find((a) => a.id === selectedArm) : null;
|
||||
const selectedArmData = selectedArm
|
||||
? ARMS.find((a) => a.id === selectedArm)
|
||||
: null;
|
||||
|
||||
if (!isOpen) return null;
|
||||
|
||||
|
|
|
|||
|
|
@ -183,7 +183,6 @@ export default function CodeLayout({ children, hideFooter }: LayoutProps) {
|
|||
}`}
|
||||
/>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
{/* Navigation */}
|
||||
|
|
@ -213,7 +212,9 @@ export default function CodeLayout({ children, hideFooter }: LayoutProps) {
|
|||
className="bg-black/98 backdrop-blur-lg border-gray-800/50 p-3"
|
||||
>
|
||||
<SheetHeader className="text-left mb-3">
|
||||
<SheetTitle className="text-xs font-semibold">Navigate</SheetTitle>
|
||||
<SheetTitle className="text-xs font-semibold">
|
||||
Navigate
|
||||
</SheetTitle>
|
||||
</SheetHeader>
|
||||
|
||||
<nav className="flex flex-col gap-0.5 mb-3">
|
||||
|
|
|
|||
|
|
@ -509,7 +509,11 @@ export default function Welcome({
|
|||
className="bg-aethex-500/20 text-aethex-100 border border-aethex-500/40"
|
||||
>
|
||||
<Link
|
||||
to={user ? "/dashboard?tab=connections" : `/login?next=${encodeURIComponent('/dashboard?tab=connections')}`}
|
||||
to={
|
||||
user
|
||||
? "/dashboard?tab=connections"
|
||||
: `/login?next=${encodeURIComponent("/dashboard?tab=connections")}`
|
||||
}
|
||||
className="flex items-center gap-2"
|
||||
>
|
||||
<ShieldCheck className="h-4 w-4" />
|
||||
|
|
|
|||
|
|
@ -139,8 +139,8 @@ export default function Labs() {
|
|||
The Innovation Engine
|
||||
</h1>
|
||||
<p className="text-lg text-yellow-100/90 mb-4">
|
||||
Real-time window into the AeThex Labs mainframe. Breakthrough
|
||||
R&D pushing the boundaries of what's possible.
|
||||
Real-time window into the AeThex Labs mainframe.
|
||||
Breakthrough R&D pushing the boundaries of what's possible.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -305,8 +305,8 @@ export default function Labs() {
|
|||
Recent Innovations
|
||||
</h2>
|
||||
<p className="mt-2 max-w-3xl text-sm text-yellow-100/70 sm:text-base">
|
||||
Broadcasts directly from Labs operations. Latest breakthroughs
|
||||
and publications from our research teams.
|
||||
Broadcasts directly from Labs operations. Latest
|
||||
breakthroughs and publications from our research teams.
|
||||
</p>
|
||||
</div>
|
||||
<Zap className="hidden h-10 w-10 text-yellow-400/70 sm:block" />
|
||||
|
|
|
|||
|
|
@ -218,7 +218,9 @@ export default function InternalDocsLayout({
|
|||
<div className="text-xs font-semibold text-blue-400 uppercase tracking-wider">
|
||||
{space.title}
|
||||
</div>
|
||||
<div className="text-xs text-slate-500">{space.description}</div>
|
||||
<div className="text-xs text-slate-500">
|
||||
{space.description}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -262,7 +264,11 @@ export default function InternalDocsLayout({
|
|||
onClick={() => setSidebarOpen(!sidebarOpen)}
|
||||
className="p-2 hover:bg-slate-800 rounded-lg transition-colors"
|
||||
>
|
||||
{sidebarOpen ? <X className="h-5 w-5" /> : <Menu className="h-5 w-5" />}
|
||||
{sidebarOpen ? (
|
||||
<X className="h-5 w-5" />
|
||||
) : (
|
||||
<Menu className="h-5 w-5" />
|
||||
)}
|
||||
</button>
|
||||
<Link
|
||||
to="/"
|
||||
|
|
|
|||
|
|
@ -36,9 +36,7 @@ export default function Space1AxiomModel() {
|
|||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-sm text-slate-300 font-medium mb-1">
|
||||
Owns:
|
||||
</p>
|
||||
<p className="text-sm text-slate-300 font-medium mb-1">Owns:</p>
|
||||
<ul className="text-xs text-slate-400 space-y-1 pl-4">
|
||||
<li>• Axiom Protocol (AI Ethics)</li>
|
||||
<li>• Nexus (Talent Marketplace)</li>
|
||||
|
|
@ -85,9 +83,7 @@ export default function Space1AxiomModel() {
|
|||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-sm text-slate-300 font-medium mb-1">
|
||||
Role:
|
||||
</p>
|
||||
<p className="text-sm text-slate-300 font-medium mb-1">Role:</p>
|
||||
<p className="text-xs text-slate-400">
|
||||
Financial separation & asset protection
|
||||
</p>
|
||||
|
|
@ -123,9 +119,7 @@ export default function Space1AxiomModel() {
|
|||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-sm text-slate-300 font-medium mb-1">
|
||||
Team:
|
||||
</p>
|
||||
<p className="text-sm text-slate-300 font-medium mb-1">Team:</p>
|
||||
<p className="text-xs text-slate-400">
|
||||
Employees, Contractors, Operations
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -95,7 +95,10 @@ export default function Space1FindYourRole() {
|
|||
</p>
|
||||
<ul className="space-y-2">
|
||||
{role.details.map((detail, idx) => (
|
||||
<li key={idx} className="text-sm text-slate-300 flex gap-2">
|
||||
<li
|
||||
key={idx}
|
||||
className="text-sm text-slate-300 flex gap-2"
|
||||
>
|
||||
<span className="text-blue-400">→</span>
|
||||
<span>{detail}</span>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ export default function Space1Welcome() {
|
|||
The Axiom Model
|
||||
</h3>
|
||||
<p className="text-sm text-slate-400 mb-4">
|
||||
Understand our 3-entity structure: The Foundation, The LLC, and The
|
||||
Corp.
|
||||
Understand our 3-entity structure: The Foundation, The LLC, and
|
||||
The Corp.
|
||||
</p>
|
||||
<div className="inline-flex items-center gap-2 text-blue-400 text-sm font-medium">
|
||||
Learn more <ArrowRight className="h-4 w-4" />
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ export default function Space2BrandVoice() {
|
|||
Who We Are
|
||||
</p>
|
||||
<p className="text-slate-300">
|
||||
AeThex is a purpose-driven technology company building innovative
|
||||
products while maintaining community trust. We operate as a 3-entity
|
||||
ecosystem: The Foundation (non-profit), The LLC (IP vault), and The
|
||||
Corp (for-profit).
|
||||
AeThex is a purpose-driven technology company building
|
||||
innovative products while maintaining community trust. We
|
||||
operate as a 3-entity ecosystem: The Foundation (non-profit),
|
||||
The LLC (IP vault), and The Corp (for-profit).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -35,8 +35,8 @@ export default function Space2BrandVoice() {
|
|||
Why We Exist
|
||||
</p>
|
||||
<p className="text-slate-300">
|
||||
We're building a new architecture for trust. Technology should serve
|
||||
both profit and purpose. We prove it's possible.
|
||||
We're building a new architecture for trust. Technology should
|
||||
serve both profit and purpose. We prove it's possible.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -46,8 +46,8 @@ export default function Space2BrandVoice() {
|
|||
</p>
|
||||
<p className="text-slate-300">
|
||||
With transparency, accountability, and integrity. We separate
|
||||
innovation, protection, and delivery. We're open about our values
|
||||
and willing to be held accountable.
|
||||
innovation, protection, and delivery. We're open about our
|
||||
values and willing to be held accountable.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -57,7 +57,9 @@ export default function Space2BrandVoice() {
|
|||
<h3 className="text-2xl font-bold text-white mb-4">Tone & Voice</h3>
|
||||
<div className="grid md:grid-cols-2 gap-4">
|
||||
<div className="bg-green-900/20 border border-green-500/30 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-green-400 mb-3">✓ We Sound Like</h4>
|
||||
<h4 className="font-semibold text-green-400 mb-3">
|
||||
✓ We Sound Like
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2">
|
||||
<li>
|
||||
<strong>Honest:</strong> We admit mistakes and limitations
|
||||
|
|
@ -108,8 +110,8 @@ export default function Space2BrandVoice() {
|
|||
1. Innovation with Purpose
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
We're building technology that makes money AND makes a difference.
|
||||
Profit and purpose aren't mutually exclusive.
|
||||
We're building technology that makes money AND makes a
|
||||
difference. Profit and purpose aren't mutually exclusive.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -118,8 +120,9 @@ export default function Space2BrandVoice() {
|
|||
2. Transparent Operations
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Our 3-entity model separates innovation, protection, and delivery.
|
||||
We're open about our structure because it's nothing to hide.
|
||||
Our 3-entity model separates innovation, protection, and
|
||||
delivery. We're open about our structure because it's nothing to
|
||||
hide.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -128,8 +131,8 @@ export default function Space2BrandVoice() {
|
|||
3. Community-First
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
We invest in communities, developers, and creatives. We build with
|
||||
them, not at them.
|
||||
We invest in communities, developers, and creatives. We build
|
||||
with them, not at them.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -164,8 +167,8 @@ export default function Space2BrandVoice() {
|
|||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<p className="font-semibold text-green-400 mb-2">🎮 GameForge</p>
|
||||
<p className="text-sm text-slate-300 mb-2">
|
||||
"Building games better. We prove that monthly shipping cycles and
|
||||
technical excellence aren't mutually exclusive."
|
||||
"Building games better. We prove that monthly shipping cycles
|
||||
and technical excellence aren't mutually exclusive."
|
||||
</p>
|
||||
<p className="text-xs text-slate-500">
|
||||
Focus: creative tools, developer experience, studio efficiency
|
||||
|
|
@ -204,7 +207,9 @@ export default function Space2BrandVoice() {
|
|||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">✓ DO</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>• Be specific: "We shipped X" not "We shipped great things"</li>
|
||||
<li>
|
||||
• Be specific: "We shipped X" not "We shipped great things"
|
||||
</li>
|
||||
<li>• Use "we" and "us" to build community</li>
|
||||
<li>• Tell stories about real problems we solve</li>
|
||||
<li>• Reference our values when appropriate</li>
|
||||
|
|
@ -215,9 +220,7 @@ export default function Space2BrandVoice() {
|
|||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">✗ DON'T</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Use corporate jargon ("synergy," "disruptive," etc.)
|
||||
</li>
|
||||
<li>• Use corporate jargon ("synergy," "disruptive," etc.)</li>
|
||||
<li>• Make claims we can't back up</li>
|
||||
<li>• Denigrate competitors</li>
|
||||
<li>• Share confidential information</li>
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ import InternalDocsLayout from "./InternalDocsLayout";
|
|||
|
||||
export default function Space2CodeOfConduct() {
|
||||
return (
|
||||
<InternalDocsLayout
|
||||
title="Code of Conduct"
|
||||
description="How We All Act"
|
||||
>
|
||||
<InternalDocsLayout title="Code of Conduct" description="How We All Act">
|
||||
<div className="space-y-8">
|
||||
<div className="bg-slate-800/50 border border-slate-700 rounded-lg p-6">
|
||||
<p className="text-slate-300 leading-relaxed">
|
||||
|
|
@ -164,9 +161,7 @@ export default function Space2CodeOfConduct() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Consequences
|
||||
</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Consequences</h3>
|
||||
<div className="bg-slate-800/50 border border-slate-700 rounded-lg p-6">
|
||||
<p className="text-sm text-slate-300 mb-4">
|
||||
Violations of this Code of Conduct will be addressed promptly
|
||||
|
|
|
|||
|
|
@ -37,13 +37,13 @@ export default function Space2Communication() {
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr className="border-b border-slate-700">
|
||||
<td className="py-3 px-4 font-semibold text-white">Discord</td>
|
||||
<td className="py-3 px-4 font-semibold text-white">
|
||||
Discord
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">
|
||||
Real-time chat, urgent issues, team coordination
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">
|
||||
5 minutes
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">5 minutes</td>
|
||||
<td className="py-3 px-4 text-slate-300">All team members</td>
|
||||
</tr>
|
||||
<tr className="border-b border-slate-700">
|
||||
|
|
@ -51,9 +51,7 @@ export default function Space2Communication() {
|
|||
<td className="py-3 px-4 text-slate-300">
|
||||
Formal communication, decisions, legal records
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">
|
||||
24 hours
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">24 hours</td>
|
||||
<td className="py-3 px-4 text-slate-300">All team members</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
@ -63,9 +61,7 @@ export default function Space2Communication() {
|
|||
<td className="py-3 px-4 text-slate-300">
|
||||
Decisions, feedback, deep work, sensitive topics
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">
|
||||
N/A
|
||||
</td>
|
||||
<td className="py-3 px-4 text-slate-300">N/A</td>
|
||||
<td className="py-3 px-4 text-slate-300">
|
||||
Required participants
|
||||
</td>
|
||||
|
|
@ -76,7 +72,9 @@ export default function Space2Communication() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Discord Etiquette</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Discord Etiquette
|
||||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Channels</h4>
|
||||
|
|
@ -117,7 +115,9 @@ export default function Space2Communication() {
|
|||
<h3 className="text-2xl font-bold text-white mb-4">Email Protocol</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">✓ Use Email For:</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
✓ Use Email For:
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>• Policy updates and announcements</li>
|
||||
<li>• Important decisions with records</li>
|
||||
|
|
@ -128,11 +128,11 @@ export default function Space2Communication() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Email Best Practices:</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Email Best Practices:
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
• Clear subject line (what is this email about?)
|
||||
</li>
|
||||
<li>• Clear subject line (what is this email about?)</li>
|
||||
<li>• Keep it brief—use bullets when possible</li>
|
||||
<li>• Call out action items in bold or separate section</li>
|
||||
<li>• Reply within 24 hours</li>
|
||||
|
|
@ -143,16 +143,16 @@ export default function Space2Communication() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Meeting Culture</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Meeting Culture
|
||||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
✓ Schedule a Meeting When:
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
• You need to make a decision with stakeholders
|
||||
</li>
|
||||
<li>• You need to make a decision with stakeholders</li>
|
||||
<li>• The topic is sensitive or requires nuance</li>
|
||||
<li>• You need face-to-face (video) interaction</li>
|
||||
<li>• Async communication has broken down</li>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ export default function Space2MeetingCadence() {
|
|||
<strong>Duration:</strong> 90 minutes
|
||||
</p>
|
||||
<p>
|
||||
<strong>Attendees:</strong> All AeThex team members (mandatory)
|
||||
<strong>Attendees:</strong> All AeThex team members
|
||||
(mandatory)
|
||||
</p>
|
||||
<p>
|
||||
<strong>Agenda:</strong> Ecosystem updates, strategic
|
||||
|
|
@ -67,7 +68,9 @@ export default function Space2MeetingCadence() {
|
|||
<h3 className="text-2xl font-bold text-white mb-4">Team Meetings</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">📊 Team Stand-up</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
📊 Team Stand-up
|
||||
</h4>
|
||||
<div className="space-y-2 text-sm text-slate-300">
|
||||
<p>
|
||||
<strong>Frequency:</strong> 2-3x per week (team-dependent)
|
||||
|
|
@ -240,8 +243,8 @@ export default function Space2MeetingCadence() {
|
|||
and who owns it
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
<strong>✓ OPTIONAL ATTENDANCE</strong> - Make it clear if attendance
|
||||
is optional
|
||||
<strong>✓ OPTIONAL ATTENDANCE</strong> - Make it clear if
|
||||
attendance is optional
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
<strong>✗ DON'T LIVE REMOTE</strong> - Either all remote or all
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ export default function Space2TechStack() {
|
|||
integration
|
||||
</p>
|
||||
<p>
|
||||
<strong>Purpose:</strong> Creator directory, opportunity board,
|
||||
applications
|
||||
<strong>Purpose:</strong> Creator directory, opportunity
|
||||
board, applications
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -80,10 +80,14 @@ export default function Space2TechStack() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Backend Services</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Backend Services
|
||||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">📧 Email Service</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
📧 Email Service
|
||||
</h4>
|
||||
<p className="text-sm text-slate-300 mb-2">
|
||||
<strong>Provider:</strong> Hostinger SMTP (support@aethex.tech)
|
||||
</p>
|
||||
|
|
@ -105,7 +109,9 @@ export default function Space2TechStack() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">🎮 Game Platform</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
🎮 Game Platform
|
||||
</h4>
|
||||
<p className="text-sm text-slate-300 mb-2">
|
||||
<strong>Integration:</strong> Roblox OAuth + Open Cloud API
|
||||
</p>
|
||||
|
|
@ -221,9 +227,7 @@ export default function Space2TechStack() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Key Principles
|
||||
</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Key Principles</h3>
|
||||
<div className="space-y-3">
|
||||
<div className="flex gap-3">
|
||||
<div className="text-2xl">🔒</div>
|
||||
|
|
@ -261,7 +265,9 @@ export default function Space2TechStack() {
|
|||
<div className="flex gap-3">
|
||||
<div className="text-2xl">🛠️</div>
|
||||
<div>
|
||||
<p className="font-semibold text-white mb-1">Developer Experience</p>
|
||||
<p className="font-semibold text-white mb-1">
|
||||
Developer Experience
|
||||
</p>
|
||||
<p className="text-sm text-slate-400">
|
||||
We invest in tools, docs, and processes that make developers
|
||||
happy.
|
||||
|
|
|
|||
|
|
@ -16,9 +16,7 @@ export default function Space3CommunityPrograms() {
|
|||
</div>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Core Programs
|
||||
</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Core Programs</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
|
|
@ -37,7 +35,8 @@ export default function Space3CommunityPrograms() {
|
|||
revenue share from platform
|
||||
</p>
|
||||
<p>
|
||||
<strong>Process:</strong> SOP-003: Architect Nomination Process
|
||||
<strong>Process:</strong> SOP-003: Architect Nomination
|
||||
Process
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -120,17 +119,17 @@ export default function Space3CommunityPrograms() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">📈 Outcomes Focus</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
📈 Outcomes Focus
|
||||
</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
We track results: job placements, skills gained, portfolio built,
|
||||
retention.
|
||||
We track results: job placements, skills gained, portfolio
|
||||
built, retention.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
💰 Sustainable
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">💰 Sustainable</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
Funded by Foundation grants and corporate sponsorships, never by
|
||||
participant fees.
|
||||
|
|
@ -171,9 +170,7 @@ export default function Space3CommunityPrograms() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
As an Architect
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">As an Architect</h4>
|
||||
<ol className="text-sm text-slate-300 space-y-2 pl-4 list-decimal">
|
||||
<li>Get nominated or self-nominate</li>
|
||||
<li>Go through nomination process</li>
|
||||
|
|
@ -194,7 +191,8 @@ export default function Space3CommunityPrograms() {
|
|||
<p className="font-semibold text-white">We track:</p>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
<strong>Participation:</strong> Number of participants by program
|
||||
<strong>Participation:</strong> Number of participants by
|
||||
program
|
||||
</li>
|
||||
<li>
|
||||
<strong>Completion:</strong> % who finish vs. drop out
|
||||
|
|
@ -228,7 +226,9 @@ export default function Space3CommunityPrograms() {
|
|||
📊
|
||||
</div>
|
||||
<div>
|
||||
<p className="font-semibold text-white mb-1">Foundation Grants</p>
|
||||
<p className="font-semibold text-white mb-1">
|
||||
Foundation Grants
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Base funding from Foundation endowment
|
||||
</p>
|
||||
|
|
@ -244,7 +244,8 @@ export default function Space3CommunityPrograms() {
|
|||
Corporate Sponsorship
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Companies sponsor individual programs (non-binding, no strings)
|
||||
Companies sponsor individual programs (non-binding, no
|
||||
strings)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -254,7 +255,9 @@ export default function Space3CommunityPrograms() {
|
|||
🎁
|
||||
</div>
|
||||
<div>
|
||||
<p className="font-semibold text-white mb-1">Individual Donors</p>
|
||||
<p className="font-semibold text-white mb-1">
|
||||
Individual Donors
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Community members donate to support specific programs
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -21,13 +21,16 @@ export default function Space3FoundationGovernance() {
|
|||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Board of Directors</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Board of Directors
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
<strong>Size:</strong> 5-9 members (odd number for voting)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Term:</strong> 2 years, staggered (2-3 rotate annually)
|
||||
<strong>Term:</strong> 2 years, staggered (2-3 rotate
|
||||
annually)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Role:</strong> Set strategy, approve budget, oversee
|
||||
|
|
@ -60,9 +63,7 @@ export default function Space3FoundationGovernance() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Committees
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Committees</h4>
|
||||
<div className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
<strong>• Finance Committee:</strong> Budget, audit,
|
||||
|
|
@ -82,7 +83,9 @@ export default function Space3FoundationGovernance() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Decision Making</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Decision Making
|
||||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Board Meetings</h4>
|
||||
|
|
@ -97,33 +100,25 @@ export default function Space3FoundationGovernance() {
|
|||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Voting Rules</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Major decisions: Simple majority (50% + 1) vote
|
||||
</li>
|
||||
<li>• Major decisions: Simple majority (50% + 1) vote</li>
|
||||
<li>
|
||||
• Budget: Requires Board approval & Finance Committee review
|
||||
</li>
|
||||
<li>
|
||||
• Governance changes: Supermajority (2/3)
|
||||
</li>
|
||||
<li>
|
||||
• Program approval: Program Committee then Board
|
||||
</li>
|
||||
<li>• Governance changes: Supermajority (2/3)</li>
|
||||
<li>• Program approval: Program Committee then Board</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Conflict of Interest</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Conflict of Interest
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Board members must disclose potential conflicts
|
||||
</li>
|
||||
<li>• Board members must disclose potential conflicts</li>
|
||||
<li>
|
||||
• No voting on decisions where you have a personal stake
|
||||
</li>
|
||||
<li>
|
||||
• Annual COI disclosures required
|
||||
</li>
|
||||
<li>• Annual COI disclosures required</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -153,7 +148,9 @@ export default function Space3FoundationGovernance() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Legal & Compliance</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Legal & Compliance
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>• Maintain 501(c)(3) status</li>
|
||||
<li>• Follow state charity regulations</li>
|
||||
|
|
@ -165,7 +162,9 @@ export default function Space3FoundationGovernance() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Fund Accounting</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Fund Accounting
|
||||
</h3>
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4 space-y-3">
|
||||
<p className="text-sm text-slate-300">
|
||||
The Foundation maintains separate funds for accountability:
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ export default function Space3OpenSourceProtocol() {
|
|||
<div className="space-y-8">
|
||||
<div className="bg-slate-800/50 border border-slate-700 rounded-lg p-6">
|
||||
<p className="text-slate-300 leading-relaxed">
|
||||
The AeThex Foundation maintains the Axiom Protocol—an open-source
|
||||
AI Ethics framework. This protocol is our contribution to the
|
||||
broader tech community.
|
||||
The AeThex Foundation maintains the Axiom Protocol—an open-source AI
|
||||
Ethics framework. This protocol is our contribution to the broader
|
||||
tech community.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -24,15 +24,13 @@ export default function Space3OpenSourceProtocol() {
|
|||
<h4 className="font-semibold text-white mb-2">Purpose</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
The Axiom Protocol is an ethical framework for AI development.
|
||||
It's built on the principle that technology should be transparent,
|
||||
accountable, and human-centered.
|
||||
It's built on the principle that technology should be
|
||||
transparent, accountable, and human-centered.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Core Principles
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Core Principles</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
<strong>Transparency:</strong> AI systems must be explainable
|
||||
|
|
@ -54,9 +52,7 @@ export default function Space3OpenSourceProtocol() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Status
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Status</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
Open-source on GitHub. Community contributions welcome via PIP
|
||||
(Protocol Improvement Proposals).
|
||||
|
|
@ -99,7 +95,8 @@ export default function Space3OpenSourceProtocol() {
|
|||
Community Discussion
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Community provides feedback. Minimum 1-week discussion window.
|
||||
Community provides feedback. Minimum 1-week discussion
|
||||
window.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -166,9 +163,7 @@ export default function Space3OpenSourceProtocol() {
|
|||
7
|
||||
</div>
|
||||
<div>
|
||||
<p className="font-semibold text-white mb-1">
|
||||
Release
|
||||
</p>
|
||||
<p className="font-semibold text-white mb-1">Release</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Included in next protocol release. Author credited.
|
||||
</p>
|
||||
|
|
@ -186,42 +181,28 @@ export default function Space3OpenSourceProtocol() {
|
|||
<div className="bg-green-900/20 border border-green-500/30 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-green-400 mb-2">✓ We Accept</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Bug fixes and improvements to existing protocols
|
||||
</li>
|
||||
<li>
|
||||
• New frameworks aligned with our core principles
|
||||
</li>
|
||||
<li>
|
||||
• Documentation improvements
|
||||
</li>
|
||||
<li>
|
||||
• Use cases and real-world examples
|
||||
</li>
|
||||
<li>• Bug fixes and improvements to existing protocols</li>
|
||||
<li>• New frameworks aligned with our core principles</li>
|
||||
<li>• Documentation improvements</li>
|
||||
<li>• Use cases and real-world examples</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="bg-red-900/20 border border-red-500/30 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-red-400 mb-2">✗ We Don't Accept</h4>
|
||||
<h4 className="font-semibold text-red-400 mb-2">
|
||||
✗ We Don't Accept
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Proposals that violate core principles
|
||||
</li>
|
||||
<li>
|
||||
• Undocumented changes
|
||||
</li>
|
||||
<li>
|
||||
• Proprietary or patent-encumbered code
|
||||
</li>
|
||||
<li>• Proposals that violate core principles</li>
|
||||
<li>• Undocumented changes</li>
|
||||
<li>• Proprietary or patent-encumbered code</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Nexus Platform
|
||||
</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Nexus Platform</h3>
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<p className="text-sm text-slate-300 mb-3">
|
||||
The Foundation operates Nexus—a talent marketplace built on open
|
||||
|
|
|
|||
|
|
@ -26,11 +26,31 @@ export default function Space4ClientOps() {
|
|||
|
||||
<div className="space-y-3">
|
||||
{[
|
||||
{ num: "1", title: "Kickoff", desc: "Meet team, set goals, define scope" },
|
||||
{ num: "2", title: "Discovery", desc: "Understand problem, current state, constraints" },
|
||||
{ num: "3", title: "Planning", desc: "Create project plan, timeline, deliverables" },
|
||||
{ num: "4", title: "Team Assignment", desc: "Assign PM, engineers, set communication cadence" },
|
||||
{ num: "5", title: "Execution", desc: "Weekly meetings, status reports, feedback" },
|
||||
{
|
||||
num: "1",
|
||||
title: "Kickoff",
|
||||
desc: "Meet team, set goals, define scope",
|
||||
},
|
||||
{
|
||||
num: "2",
|
||||
title: "Discovery",
|
||||
desc: "Understand problem, current state, constraints",
|
||||
},
|
||||
{
|
||||
num: "3",
|
||||
title: "Planning",
|
||||
desc: "Create project plan, timeline, deliverables",
|
||||
},
|
||||
{
|
||||
num: "4",
|
||||
title: "Team Assignment",
|
||||
desc: "Assign PM, engineers, set communication cadence",
|
||||
},
|
||||
{
|
||||
num: "5",
|
||||
title: "Execution",
|
||||
desc: "Weekly meetings, status reports, feedback",
|
||||
},
|
||||
].map((step) => (
|
||||
<div
|
||||
key={step.num}
|
||||
|
|
@ -40,7 +60,9 @@ export default function Space4ClientOps() {
|
|||
{step.num}
|
||||
</div>
|
||||
<div>
|
||||
<p className="font-semibold text-white mb-1">{step.title}</p>
|
||||
<p className="font-semibold text-white mb-1">
|
||||
{step.title}
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">{step.desc}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -73,22 +95,18 @@ export default function Space4ClientOps() {
|
|||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Benefits</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
✓ Corp gets vetted, community-proven talent
|
||||
</li>
|
||||
<li>
|
||||
✓ Foundation community members get paid work
|
||||
</li>
|
||||
<li>
|
||||
✓ Win-win partnership between entities
|
||||
</li>
|
||||
<li>✓ Corp gets vetted, community-proven talent</li>
|
||||
<li>✓ Foundation community members get paid work</li>
|
||||
<li>✓ Win-win partnership between entities</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Engagement Models</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Engagement Models
|
||||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
|
|
@ -105,9 +123,7 @@ export default function Space4ClientOps() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Fixed Price
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Fixed Price</h4>
|
||||
<p className="text-sm text-slate-300 mb-2">
|
||||
Fixed fee for defined scope. Good for clear deliverables.
|
||||
</p>
|
||||
|
|
@ -119,9 +135,7 @@ export default function Space4ClientOps() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Retainer
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Retainer</h4>
|
||||
<p className="text-sm text-slate-300 mb-2">
|
||||
Monthly fee for ongoing support. Good for long-term clients.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ export default function Space4CorpBlueprints() {
|
|||
enterprises
|
||||
</p>
|
||||
<p>
|
||||
<strong>Docs:</strong> PRD, Architecture, Roadmap (see
|
||||
product channel)
|
||||
<strong>Docs:</strong> PRD, Architecture, Roadmap (see product
|
||||
channel)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -120,15 +120,9 @@ export default function Space4CorpBlueprints() {
|
|||
Product Manager Role
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
<EFBFBD><EFBFBD> Owns product strategy & roadmap
|
||||
</li>
|
||||
<li>
|
||||
• Sets priorities & defines scope
|
||||
</li>
|
||||
<li>
|
||||
• Reports to VP of Product
|
||||
</li>
|
||||
<li><EFBFBD><EFBFBD> Owns product strategy & roadmap</li>
|
||||
<li>• Sets priorities & defines scope</li>
|
||||
<li>• Reports to VP of Product</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
@ -137,15 +131,9 @@ export default function Space4CorpBlueprints() {
|
|||
Product Review Cadence
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Weekly: Team standup (engineering)
|
||||
</li>
|
||||
<li>
|
||||
• Bi-weekly: Product review (PM + leadership)
|
||||
</li>
|
||||
<li>
|
||||
• Monthly: Stakeholder review (board-level)
|
||||
</li>
|
||||
<li>• Weekly: Team standup (engineering)</li>
|
||||
<li>• Bi-weekly: Product review (PM + leadership)</li>
|
||||
<li>• Monthly: Stakeholder review (board-level)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
@ -154,18 +142,10 @@ export default function Space4CorpBlueprints() {
|
|||
Feature Prioritization
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Impact on revenue or growth
|
||||
</li>
|
||||
<li>
|
||||
• Customer feedback & requests
|
||||
</li>
|
||||
<li>
|
||||
• Technical debt & maintenance
|
||||
</li>
|
||||
<li>
|
||||
• Strategic alignment
|
||||
</li>
|
||||
<li>• Impact on revenue or growth</li>
|
||||
<li>• Customer feedback & requests</li>
|
||||
<li>• Technical debt & maintenance</li>
|
||||
<li>• Strategic alignment</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ export default function Space4PlatformStrategy() {
|
|||
</div>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Platform Vision</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Platform Vision
|
||||
</h3>
|
||||
<div className="space-y-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">What Is It?</h4>
|
||||
|
|
@ -58,8 +60,8 @@ export default function Space4PlatformStrategy() {
|
|||
<h4 className="font-semibold text-white mb-2">Tech Stack</h4>
|
||||
<div className="text-sm text-slate-300 space-y-2">
|
||||
<p>
|
||||
<strong>Frontend:</strong> React 18 + TypeScript, Tailwind CSS,
|
||||
Vite
|
||||
<strong>Frontend:</strong> React 18 + TypeScript, Tailwind
|
||||
CSS, Vite
|
||||
</p>
|
||||
<p>
|
||||
<strong>Backend:</strong> Node.js + Express + TypeScript
|
||||
|
|
@ -142,9 +144,7 @@ export default function Space4PlatformStrategy() {
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
KPIs & Metrics
|
||||
</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">KPIs & Metrics</h3>
|
||||
<div className="grid md:grid-cols-2 gap-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">User Metrics</h4>
|
||||
|
|
@ -157,7 +157,9 @@ export default function Space4PlatformStrategy() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Business Metrics</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Business Metrics
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>• Platform revenue</li>
|
||||
<li>• Transaction volume</li>
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ export default function Space4ProductOps() {
|
|||
<div className="space-y-8">
|
||||
<div className="bg-slate-800/50 border border-slate-700 rounded-lg p-6">
|
||||
<p className="text-slate-300 leading-relaxed">
|
||||
The Corp's engineering team follows a disciplined product development
|
||||
lifecycle. This ensures quality, reliability, and continuous delivery.
|
||||
The Corp's engineering team follows a disciplined product
|
||||
development lifecycle. This ensures quality, reliability, and
|
||||
continuous delivery.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -50,7 +51,9 @@ export default function Space4ProductOps() {
|
|||
key={stage.title}
|
||||
className="bg-slate-800/30 border border-slate-700 rounded-lg p-4"
|
||||
>
|
||||
<h4 className="font-semibold text-white mb-1">{stage.title}</h4>
|
||||
<h4 className="font-semibold text-white mb-1">
|
||||
{stage.title}
|
||||
</h4>
|
||||
<p className="text-sm text-slate-300">{stage.desc}</p>
|
||||
</div>
|
||||
))}
|
||||
|
|
@ -72,7 +75,9 @@ export default function Space4ProductOps() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Sprint Ceremonies</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Sprint Ceremonies
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-2 pl-4">
|
||||
<li>
|
||||
<strong>Sprint Planning (Mon):</strong> Agree on sprint goal &
|
||||
|
|
@ -91,7 +96,9 @@ export default function Space4ProductOps() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Definition of Done</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Definition of Done
|
||||
</h4>
|
||||
<p className="text-sm text-slate-300 mb-2">
|
||||
Work is "done" only when:
|
||||
</p>
|
||||
|
|
@ -124,7 +131,9 @@ export default function Space4ProductOps() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Review Standards</h4>
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Review Standards
|
||||
</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>✓ Code is readable and well-commented</li>
|
||||
<li>✓ No security vulnerabilities</li>
|
||||
|
|
@ -137,22 +146,18 @@ export default function Space4ProductOps() {
|
|||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Deployment</h4>
|
||||
<ul className="text-sm text-slate-300 space-y-1 pl-4">
|
||||
<li>
|
||||
• Main branch auto-deploys to staging environment
|
||||
</li>
|
||||
<li>
|
||||
• Release branch (vX.Y.Z) deploys to production
|
||||
</li>
|
||||
<li>
|
||||
• Hotfixes go direct to main + release
|
||||
</li>
|
||||
<li>• Main branch auto-deploys to staging environment</li>
|
||||
<li>• Release branch (vX.Y.Z) deploys to production</li>
|
||||
<li>• Hotfixes go direct to main + release</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">Quality Standards</h3>
|
||||
<h3 className="text-2xl font-bold text-white mb-4">
|
||||
Quality Standards
|
||||
</h3>
|
||||
<div className="grid md:grid-cols-2 gap-4">
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">Performance</h4>
|
||||
|
|
|
|||
|
|
@ -51,9 +51,7 @@ export default function Space5Finance() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Where to Submit
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Where to Submit</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
Email invoices to: <strong>invoicing@aethex.tech</strong>
|
||||
</p>
|
||||
|
|
@ -63,9 +61,7 @@ export default function Space5Finance() {
|
|||
</div>
|
||||
|
||||
<div className="bg-slate-800/30 border border-slate-700 rounded-lg p-4">
|
||||
<h4 className="font-semibold text-white mb-2">
|
||||
Late Payments
|
||||
</h4>
|
||||
<h4 className="font-semibold text-white mb-2">Late Payments</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
If you don't receive payment within 3 business days of the due
|
||||
date, contact HR immediately. We prioritize on-time payment.
|
||||
|
|
@ -139,8 +135,8 @@ export default function Space5Finance() {
|
|||
Email: <strong>expenses@aethex.tech</strong>
|
||||
</p>
|
||||
<p className="text-sm text-slate-300 mt-2">
|
||||
Attach receipts as PDF or image files. Subject: "EXPENSE
|
||||
REPORT - [Your Name] - [Month]"
|
||||
Attach receipts as PDF or image files. Subject: "EXPENSE REPORT
|
||||
- [Your Name] - [Month]"
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -180,8 +176,8 @@ export default function Space5Finance() {
|
|||
Q: When do I get paid?
|
||||
</h4>
|
||||
<p className="text-sm text-slate-300">
|
||||
A: Contractors: 15th of following month. Employees: bi-weekly per
|
||||
payroll schedule.
|
||||
A: Contractors: 15th of following month. Employees: bi-weekly
|
||||
per payroll schedule.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ import InternalDocsLayout from "./InternalDocsLayout";
|
|||
|
||||
export default function Space5Onboarding() {
|
||||
return (
|
||||
<InternalDocsLayout
|
||||
title="New Hire Onboarding"
|
||||
description="SOP-300"
|
||||
>
|
||||
<InternalDocsLayout title="New Hire Onboarding" description="SOP-300">
|
||||
<div className="space-y-8">
|
||||
<div className="bg-slate-800/50 border border-slate-700 rounded-lg p-6">
|
||||
<p className="text-slate-300 leading-relaxed">
|
||||
|
|
@ -83,7 +80,8 @@ export default function Space5Onboarding() {
|
|||
Day 4-5: First Task
|
||||
</p>
|
||||
<p className="text-sm text-slate-300">
|
||||
Manager assigns small, achievable first task to get comfortable
|
||||
Manager assigns small, achievable first task to get
|
||||
comfortable
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -157,7 +157,9 @@ export default function StaffAnnouncements() {
|
|||
{categories.map((category) => (
|
||||
<Button
|
||||
key={category}
|
||||
variant={selectedCategory === category ? "default" : "outline"}
|
||||
variant={
|
||||
selectedCategory === category ? "default" : "outline"
|
||||
}
|
||||
size="sm"
|
||||
onClick={() => setSelectedCategory(category)}
|
||||
className={
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ const expenses: Expense[] = [
|
|||
{
|
||||
id: "3",
|
||||
description: "Client Dinner Meeting",
|
||||
amount: 85.50,
|
||||
amount: 85.5,
|
||||
category: "Entertainment",
|
||||
date: "February 28, 2025",
|
||||
status: "Reimbursed",
|
||||
|
|
@ -189,7 +189,9 @@ export default function StaffExpenseReports() {
|
|||
<CardContent className="pt-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<p className="text-sm text-green-200/70">Total Submitted</p>
|
||||
<p className="text-sm text-green-200/70">
|
||||
Total Submitted
|
||||
</p>
|
||||
<p className="text-3xl font-bold text-green-100">
|
||||
${totalSpent.toFixed(2)}
|
||||
</p>
|
||||
|
|
@ -255,10 +257,7 @@ export default function StaffExpenseReports() {
|
|||
{budget.percentage}%
|
||||
</p>
|
||||
</div>
|
||||
<Progress
|
||||
value={budget.percentage}
|
||||
className="h-2"
|
||||
/>
|
||||
<Progress value={budget.percentage} className="h-2" />
|
||||
</CardContent>
|
||||
</Card>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -167,13 +167,18 @@ export default function StaffInternalMarketplace() {
|
|||
<p className="text-2xl font-bold text-amber-100">
|
||||
{services.length}
|
||||
</p>
|
||||
<p className="text-sm text-amber-200/70">Available Services</p>
|
||||
<p className="text-sm text-amber-200/70">
|
||||
Available Services
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card className="bg-amber-950/30 border-amber-500/30">
|
||||
<CardContent className="pt-6">
|
||||
<p className="text-2xl font-bold text-amber-100">
|
||||
{services.filter((s) => s.availability === "Available").length}
|
||||
{
|
||||
services.filter((s) => s.availability === "Available")
|
||||
.length
|
||||
}
|
||||
</p>
|
||||
<p className="text-sm text-amber-200/70">Ready to Book</p>
|
||||
</CardContent>
|
||||
|
|
@ -203,7 +208,9 @@ export default function StaffInternalMarketplace() {
|
|||
{categories.map((category) => (
|
||||
<Button
|
||||
key={category}
|
||||
variant={selectedCategory === category ? "default" : "outline"}
|
||||
variant={
|
||||
selectedCategory === category ? "default" : "outline"
|
||||
}
|
||||
size="sm"
|
||||
onClick={() => setSelectedCategory(category)}
|
||||
className={
|
||||
|
|
|
|||
|
|
@ -78,7 +78,8 @@ const articles: KnowledgeArticle[] = [
|
|||
id: "5",
|
||||
title: "Security & Access Control",
|
||||
category: "Security",
|
||||
description: "Security policies, password management, and access procedures",
|
||||
description:
|
||||
"Security policies, password management, and access procedures",
|
||||
tags: ["security", "access", "compliance"],
|
||||
views: 112,
|
||||
updated: "1 day ago",
|
||||
|
|
@ -165,7 +166,9 @@ export default function StaffKnowledgeBase() {
|
|||
{categories.map((category) => (
|
||||
<Button
|
||||
key={category}
|
||||
variant={selectedCategory === category ? "default" : "outline"}
|
||||
variant={
|
||||
selectedCategory === category ? "default" : "outline"
|
||||
}
|
||||
size="sm"
|
||||
onClick={() => setSelectedCategory(category)}
|
||||
className={
|
||||
|
|
|
|||
|
|
@ -196,7 +196,9 @@ export default function StaffLearningPortal() {
|
|||
{categories.map((category) => (
|
||||
<Button
|
||||
key={category}
|
||||
variant={selectedCategory === category ? "default" : "outline"}
|
||||
variant={
|
||||
selectedCategory === category ? "default" : "outline"
|
||||
}
|
||||
size="sm"
|
||||
onClick={() => setSelectedCategory(category)}
|
||||
className={
|
||||
|
|
@ -247,7 +249,9 @@ export default function StaffLearningPortal() {
|
|||
<div className="space-y-2">
|
||||
<div className="flex justify-between text-sm">
|
||||
<span className="text-slate-400">Progress</span>
|
||||
<span className="text-cyan-300">{course.progress}%</span>
|
||||
<span className="text-cyan-300">
|
||||
{course.progress}%
|
||||
</span>
|
||||
</div>
|
||||
<Progress value={course.progress} className="h-2" />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -197,7 +197,10 @@ export default function StaffPerformanceReviews() {
|
|||
{metric.score}
|
||||
</p>
|
||||
</div>
|
||||
<Progress value={(metric.score / 10) * 100} className="h-2" />
|
||||
<Progress
|
||||
value={(metric.score / 10) * 100}
|
||||
className="h-2"
|
||||
/>
|
||||
</CardContent>
|
||||
</Card>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,9 @@ export default function StaffProjectTracking() {
|
|||
: okrs;
|
||||
|
||||
const avgProgress =
|
||||
Math.round(filtered.reduce((sum, okr) => sum + okr.progress, 0) / filtered.length) || 0;
|
||||
Math.round(
|
||||
filtered.reduce((sum, okr) => sum + okr.progress, 0) / filtered.length,
|
||||
) || 0;
|
||||
|
||||
return (
|
||||
<Layout>
|
||||
|
|
@ -146,9 +148,7 @@ export default function StaffProjectTracking() {
|
|||
<CardContent className="pt-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<p className="text-sm text-indigo-200/70">
|
||||
Active OKRs
|
||||
</p>
|
||||
<p className="text-sm text-indigo-200/70">Active OKRs</p>
|
||||
<p className="text-3xl font-bold text-indigo-100">
|
||||
{filtered.length}
|
||||
</p>
|
||||
|
|
@ -161,9 +161,7 @@ export default function StaffProjectTracking() {
|
|||
<CardContent className="pt-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<p className="text-sm text-indigo-200/70">
|
||||
Avg Progress
|
||||
</p>
|
||||
<p className="text-sm text-indigo-200/70">Avg Progress</p>
|
||||
<p className="text-3xl font-bold text-indigo-100">
|
||||
{avgProgress}%
|
||||
</p>
|
||||
|
|
@ -238,9 +236,7 @@ export default function StaffProjectTracking() {
|
|||
{okr.description}
|
||||
</CardDescription>
|
||||
</div>
|
||||
<Badge
|
||||
className={`border ${getStatusColor(okr.status)}`}
|
||||
>
|
||||
<Badge className={`border ${getStatusColor(okr.status)}`}>
|
||||
{okr.status}
|
||||
</Badge>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -70,12 +70,7 @@ const sections: HandbookSection[] = [
|
|||
title: "Remote Work & Flexibility",
|
||||
icon: <MapPin className="h-6 w-6" />,
|
||||
content: "Work from home policies, office hours, and location flexibility",
|
||||
subsections: [
|
||||
"WFH Policy",
|
||||
"Core Hours",
|
||||
"Office Access",
|
||||
"Equipment",
|
||||
],
|
||||
subsections: ["WFH Policy", "Core Hours", "Office Access", "Equipment"],
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
|
|
@ -199,10 +194,7 @@ export default function StaffTeamHandbook() {
|
|||
</Badge>
|
||||
))}
|
||||
</div>
|
||||
<Button
|
||||
size="sm"
|
||||
className="bg-blue-600 hover:bg-blue-700"
|
||||
>
|
||||
<Button size="sm" className="bg-blue-600 hover:bg-blue-700">
|
||||
View Details
|
||||
</Button>
|
||||
</CardContent>
|
||||
|
|
|
|||
|
|
@ -2,59 +2,74 @@ Token Compromise - Immediate Remediation
|
|||
|
||||
If a Discord bot token was accidentally committed to the repository, follow these steps immediately.
|
||||
|
||||
1) Revoke the compromised token
|
||||
1. Revoke the compromised token
|
||||
|
||||
- Go to Discord Developer Portal -> Applications -> Your App -> Bot
|
||||
- Click Reset Token (Regenerate Token). Copy the new token and keep it secret.
|
||||
|
||||
2) Do NOT push the new token to the repository
|
||||
2. Do NOT push the new token to the repository
|
||||
|
||||
- Store the new token in your deployment environment (Vercel, Railway, Netlify) as a secret environment variable.
|
||||
- Locally, use code/discord-bot/.env only if absolutely necessary, and ensure it's listed in .gitignore.
|
||||
|
||||
3) Remove the leaked token from git history
|
||||
3. Remove the leaked token from git history
|
||||
|
||||
- The safest way is to use git-filter-repo or BFG. Example with git-filter-repo (recommended):
|
||||
|
||||
# Install git-filter-repo if not present
|
||||
|
||||
pip install git-filter-repo
|
||||
|
||||
# Make a backup of your repo first!
|
||||
|
||||
git clone --mirror https://github.com/your-org/your-repo.git repo-mirror.git
|
||||
cd repo-mirror.git
|
||||
|
||||
# Remove the file path that contained the token (example: code/discord-bot/.env)
|
||||
|
||||
git filter-repo --invert-paths --path code/discord-bot/.env
|
||||
|
||||
# Push the cleaned mirror back (force push!)
|
||||
|
||||
git push --force --all
|
||||
git push --force --tags
|
||||
|
||||
- Alternative: Use BFG Repo-Cleaner (https://rtyley.github.io/bfg-repo-cleaner/)
|
||||
|
||||
4) Rotate any other credentials that were in the same commit
|
||||
4. Rotate any other credentials that were in the same commit
|
||||
|
||||
- If other secrets were exposed in the same commit, rotate them as well.
|
||||
|
||||
5) Confirm removal
|
||||
5. Confirm removal
|
||||
|
||||
- Check GitHub/Bitbucket/GitLab web UI to ensure the file no longer exists in history.
|
||||
- Use `git log --all --grep="<sensitive snippet>"` to search for occurrences.
|
||||
|
||||
6) Update .gitignore
|
||||
6. Update .gitignore
|
||||
|
||||
- Ensure code/discord-bot/.env is listed in code/.gitignore (already added by the team).
|
||||
|
||||
7) Re-deploy with secrets stored in environment variables
|
||||
7. Re-deploy with secrets stored in environment variables
|
||||
|
||||
- Add DISCORD_BOT_TOKEN and DISCORD_CLIENT_ID to your deployment platform secrets.
|
||||
- Remove any local .env files from the working tree if present.
|
||||
|
||||
8) Register commands
|
||||
8. Register commands
|
||||
|
||||
- After deploying the new token, register the slash commands again, either via the admin HTTP endpoint or locally:
|
||||
|
||||
# Using local script
|
||||
|
||||
cd code/discord-bot
|
||||
npm ci
|
||||
npm run register-commands
|
||||
|
||||
# Or via admin endpoint
|
||||
|
||||
curl -X POST "https://<your-app>/api/discord/admin-register-commands" -H "Authorization: Bearer <DISCORD_ADMIN_REGISTER_TOKEN>"
|
||||
|
||||
9) Monitor
|
||||
9. Monitor
|
||||
|
||||
- Check Discord developer portal and bot logs for suspicious activity.
|
||||
- Verify that your bot is functioning and commands are registered.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue