Skip to content

Commit ff7ea73

Browse files
polish: remove em dashes per voice guide; expand scenario sniff to title-based markers
1 parent e5b25d0 commit ff7ea73

12 files changed

Lines changed: 26 additions & 23 deletions

File tree

web/app/architecture/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ export const dynamic = 'force-static';
55
const layers = [
66
{
77
name: 'Perception',
8-
desc: 'Multimodal ingestion. OTLP traces, JSON logs, Prometheus metrics, GitHub PR diffs, Slack threads every stream becomes a uniform Signal.',
8+
desc: 'Multimodal ingestion. OTLP traces, JSON logs, Prometheus metrics, GitHub PR diffs, Slack threads, every stream becomes a uniform Signal.',
99
items: ['OTLP receiver', 'Log shipper', 'Metrics scraper', 'GitHub webhook', 'Slack/Teams adapter'],
1010
},
1111
{
1212
name: 'Reasoning',
13-
desc: 'A finite state machine over six agents: Analyst, Devil’s Advocate, Strategist, Tool-Call Critic, Safety, Verifier plus a Narrator for human summaries.',
13+
desc: 'A finite state machine over six agents: Analyst, Devil’s Advocate, Strategist, Tool-Call Critic, Safety, Verifier, plus a Narrator for human summaries.',
1414
items: ['Analyst', 'Devil’s Advocate', 'Strategist', 'Critic', 'Safety / Compliance', 'Verifier', 'Narrator'],
1515
},
1616
{

web/app/demo/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default function DemoIndex() {
1010
<Section
1111
kicker="Live demo"
1212
title="Pick a scenario to run."
13-
sub="Each run streams the agents' reasoning as it happens. Refresh and re-run any time fixtures are deterministic."
13+
sub="Each run streams the agents' reasoning as it happens. Refresh and re-run any time, fixtures are deterministic."
1414
>
1515
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
1616
{SCENARIOS.map(s => (

web/app/layout.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import { Footer } from '@/components/Footer';
66
export const metadata: Metadata = {
77
metadataBase: new URL('https://sentinelcloud.dmj.one'),
88
title: {
9-
default: 'SentinelCloud AI-Driven Autonomous DevOps Engineer',
9+
default: 'SentinelCloud, AI-Driven Autonomous DevOps Engineer',
1010
template: '%s · SentinelCloud',
1111
},
1212
description:
13-
'A closed-loop multi-agent system that observes, debates, decides, acts and learns turning incident response, FinOps and shift-left security into measured KPIs.',
13+
'A closed-loop multi-agent system that observes, debates, decides, acts and learns, turning incident response, FinOps and shift-left security into measured KPIs.',
1414
applicationName: 'SentinelCloud',
1515
authors: [{ name: 'Rohit Kumar' }, { name: 'Divya Mohan' }],
1616
creator: 'Rohit Kumar',
@@ -23,7 +23,7 @@ export const metadata: Metadata = {
2323
type: 'website',
2424
url: 'https://sentinelcloud.dmj.one',
2525
siteName: 'SentinelCloud',
26-
title: 'SentinelCloud AI-Driven Autonomous DevOps Engineer',
26+
title: 'SentinelCloud, AI-Driven Autonomous DevOps Engineer',
2727
description:
2828
'Multi-agent debate, blast-radius gating, semantic policy, episodic memory. Capstone build by Rohit Kumar with Divya Mohan, dmj.one.',
2929
},

web/app/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const gaps = [
1818
['G9', 'Episodic Memory + PRM', 'Past resolutions retrieved by similarity. Per-step quality scored.'],
1919
['G10', 'Confidence Calibration', 'Auto-act only above class-specific thresholds; below = human-on-the-loop.'],
2020
['G11', 'WAF Rule Synthesizer', 'Given a CVE, drafts a ModSecurity / Cloud Armor rule with TTL and cite.'],
21-
['G12', 'Multimodal Ingestor', 'OTLP, JSON logs, metrics, PR diffs, chat one normalized envelope.'],
21+
['G12', 'Multimodal Ingestor', 'OTLP, JSON logs, metrics, PR diffs, chat, one normalized envelope.'],
2222
];
2323

2424
export default function Home() {
@@ -84,7 +84,7 @@ export default function Home() {
8484
<Section
8585
kicker="Open and reproducible"
8686
title="The whole thing is on GitHub."
87-
sub="Source, scenarios, prompts, KPI math none of it is a black box. Fork it, run it, prove the numbers, write the next paper."
87+
sub="Source, scenarios, prompts, KPI math, none of it is a black box. Fork it, run it, prove the numbers, write the next paper."
8888
>
8989
<div className="flex flex-wrap items-center gap-3">
9090
<a
@@ -123,7 +123,7 @@ function Hero() {
123123
<span className="bg-gradient-to-r from-[var(--color-accent)] to-[var(--color-accent-2)] bg-clip-text text-transparent">that thinks before it acts.</span>
124124
</h1>
125125
<p className="mt-6 max-w-2xl text-[15.5px] md:text-[16.5px] text-[var(--color-fg-2)] leading-relaxed">
126-
SentinelCloud is a closed-loop multi-agent system. It observes signals, debates the root cause, predicts the outcome of a fix, gates the action against a written constitution, and only then acts — or pauses for a human if it is not sure enough. Every step is logged, every claim is a measurable KPI.
126+
SentinelCloud is a closed-loop multi-agent system. It observes signals, debates the root cause, predicts the outcome of a fix, gates the action against a written constitution, and only then acts. If it is not sure enough, it pauses for a human. Every step is logged. Every claim is a measurable KPI.
127127
</p>
128128
<div className="mt-8 flex flex-wrap items-center gap-3">
129129
<Link href="/demo"

web/app/research/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default function Research() {
5555
<h3 className="text-[18px] font-semibold mt-6 mb-2">Baselines we compare against</h3>
5656
<ul className="text-[14px] text-[var(--color-fg-2)] space-y-1.5">
5757
{baselines.map(([b, d]) => (
58-
<li key={b}><b className="text-[var(--color-fg)]">{b}</b> {d}</li>
58+
<li key={b}><b className="text-[var(--color-fg)]">{b}</b>, {d}</li>
5959
))}
6060
</ul>
6161

web/components/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function Footer() {
2020
<div>
2121
<div className="text-[var(--color-fg)] font-semibold mb-2">Author</div>
2222
<ul className="space-y-1.5">
23-
<li>Rohit Kumar GF202220522</li>
23+
<li>Rohit Kumar, GF202220522</li>
2424
<li>BTech CSE Cloud Computing</li>
2525
<li>Galgotias University</li>
2626
</ul>

web/components/RunStage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ function TurnCard({ turn }: { turn: any }) {
213213
<div className="flex items-center justify-between mb-1.5">
214214
<div className={`text-[11px] uppercase tracking-wider px-2 py-0.5 rounded border ${tone[role] || ''}`}>{role}</div>
215215
<div className="text-[11px] text-[var(--color-fg-3)] font-mono tabular-nums">
216-
conf {turn.confidence?.toFixed?.(2) ?? ''} · {turn.latencyMs ?? 0}ms
216+
conf {turn.confidence?.toFixed?.(2) ?? '-'} · {turn.latencyMs ?? 0}ms
217217
</div>
218218
</div>
219219
<p className="text-[13.5px] leading-relaxed text-[var(--color-fg-2)]">{turn.thought}</p>

web/lib/agents/agents.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Individual agent calls. Each returns an AgentTurn.
2-
// Errors are absorbed into low-confidence turns rather than thrown the
2+
// Errors are absorbed into low-confidence turns rather than thrown, the
33
// orchestrator should always be able to make forward progress for the demo.
44

55
import { llm, safeJson } from '../llm/gateway';

web/lib/agents/orchestrator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ function computeKpis({ outcome, blast, fused, action }: { outcome: string; blast
170170
function narratorStory(scenario: Scenario, action: Action, outcome: string, kpis: RunReport['kpis']): string {
171171
return [
172172
`Scenario: ${scenario.title}.`,
173-
`Action: ${action.kind} on ${action.target} ${action.rationale}`,
173+
`Action: ${action.kind} on ${action.target}, ${action.rationale}`,
174174
`Outcome: ${outcome}.`,
175175
`KPIs: MTTR=${kpis.mttrSec}s, blast-aware noise reduction=${kpis.noiseReductionPct}%, hallucination=${kpis.hallucinationRatePct}%.`,
176176
'Write a one-paragraph narrative for an on-call engineer.',

web/lib/agents/prompts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Schema:
2323
`;
2424

2525
export const DEVIL_SYSTEM = `
26-
You are the DEVIL'S ADVOCATE agent. Your contractual obligation is to disagree with the Analyst when there is any reasonable alternative even if it is less likely.
26+
You are the DEVIL'S ADVOCATE agent. Your contractual obligation is to disagree with the Analyst when there is any reasonable alternative, even if it is less likely.
2727
You exist specifically to break groupthink. You may not abstain.
2828
${baseRules}
2929
Schema:

0 commit comments

Comments
 (0)