chore: "Buch"-Erwähnungen aus UI & Kommentaren entfernen
User-sichtbare Hinweise (Meilenstein-Mindestanzahl, Stakeholder-Empty, Freitags-Warnung) ohne Quellenangabe umformuliert; Dev-Kommentare von "Buch Kap. X" auf "Leitfaden" geändert. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d8a224d5af
commit
390a99bf5e
5 files changed
+14
-14
No files matched your search
@@ -236,7 +236,7 @@ export const projectRouter = router({
|
||||
return updated;
|
||||
}),
|
||||
|
||||
// Projekt-Modus setzen (Buch Kap. 4): muss jederzeit ans Team kommuniziert sein.
|
||||
// Projekt-Modus setzen (Leitfaden): muss jederzeit ans Team kommuniziert sein.
|
||||
setModus: protectedProcedure
|
||||
.input(ProjectSchemas.setModusInput)
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
@@ -286,7 +286,7 @@ export const projectRouter = router({
|
||||
order: existing.length,
|
||||
})
|
||||
.returning();
|
||||
// Pflicht-Minimum-Punkt „Meilensteine" nachziehen (Buch: mind. 2).
|
||||
// Pflicht-Minimum-Punkt „Meilensteine" nachziehen (Leitfaden: mind. 2).
|
||||
const p = (
|
||||
await ctx.db.select().from(project).where(eq(project.id, input.projectId)).limit(1)
|
||||
)[0];
|
||||
|
||||
@@ -96,14 +96,14 @@ export const CHANGE_ENTSCHEIDUNG_META: Record<ChangeEntscheidung, { label: strin
|
||||
};
|
||||
export const CHANGE_ENTSCHEIDUNGEN: ChangeEntscheidung[] = ['offen', 'genehmigt', 'abgelehnt'];
|
||||
|
||||
// Datums-Warnungen nach Buch-Regeln (keine Meilensteine Freitag / vor Feiertagen).
|
||||
// Datums-Warnungen (keine Meilensteine Freitag / vor Feiertagen).
|
||||
export function dateWarnings(iso: string | null | undefined): string[] {
|
||||
if (!iso) return [];
|
||||
const d = new Date(`${iso}T00:00:00`);
|
||||
if (Number.isNaN(d.getTime())) return [];
|
||||
const out: string[] = [];
|
||||
const wd = d.getDay(); // 0=So .. 6=Sa
|
||||
if (wd === 5) out.push('Fällt auf einen Freitag — Buch-Regel: keine Meilensteine/Abgaben freitags.');
|
||||
if (wd === 5) out.push('Fällt auf einen Freitag — besser keine Meilensteine/Abgaben freitags.');
|
||||
if (wd === 0 || wd === 6) out.push('Fällt aufs Wochenende.');
|
||||
const month = d.getMonth();
|
||||
const day = d.getDate();
|
||||
|
||||
@@ -215,7 +215,7 @@ export function ProjektRoute() {
|
||||
);
|
||||
}
|
||||
|
||||
// --- Modus (Buch Kap. 4: jederzeit ans Team kommuniziert) -------------------
|
||||
// --- Modus (Leitfaden: jederzeit ans Team kommuniziert) ---------------------
|
||||
function ModusControl({ projectId, modus }: { projectId: string; modus: ProjectModus }) {
|
||||
const utils = trpc.useUtils();
|
||||
const set = trpc.project.setModus.useMutation({
|
||||
@@ -849,8 +849,8 @@ function StakeholdersSection({ projectId }: { projectId: string }) {
|
||||
{list.length > 0 && <StakeholderMatrix list={list} />}
|
||||
{list.length === 0 && !adding && (
|
||||
<p className="text-sm text-[var(--color-ink-muted)]">
|
||||
Noch keine Stakeholder erfasst. Buch: alle, die auch nur entfernt mit dem Projekt zu
|
||||
tun haben, haben Interessen, Macht und Einfluss.
|
||||
Noch keine Stakeholder erfasst. Alle, die auch nur entfernt mit dem Projekt zu tun
|
||||
haben, haben Interessen, Macht und Einfluss.
|
||||
</p>
|
||||
)}
|
||||
<div className="space-y-2">
|
||||
@@ -1602,7 +1602,7 @@ function MilestonesSection({
|
||||
{milestones.length < 2 && (
|
||||
<p className="mb-2 flex items-start gap-1.5 text-xs text-[var(--color-ampel-amber-fg)]">
|
||||
<AlertTriangle size={13} className="mt-0.5 shrink-0" />
|
||||
Buch-Regel: jedes Projekt hat mindestens 2 Meilensteine (Anfang & Ende).
|
||||
Jedes Projekt sollte mindestens 2 Meilensteine haben (Anfang & Ende).
|
||||
</p>
|
||||
)}
|
||||
<Card.Root>
|
||||
|
||||
@@ -125,7 +125,7 @@ export const project = pgTable(
|
||||
.references(() => area.id, { onDelete: 'restrict' }),
|
||||
name: text('name').notNull(),
|
||||
description: text('description'),
|
||||
// Maxime / roter Faden (ein Satz) — Leitsatz fürs ganze Team (Buch Kap. 4 Strategie).
|
||||
// Maxime / roter Faden (ein Satz) — Leitsatz fürs ganze Team (Leitfaden: Strategie).
|
||||
maxime: text('maxime'),
|
||||
// Definition (Leitfaden Phase 1) — Kurzfassung; Volltext-Steckbrief lebt in Outline.
|
||||
ziel: text('ziel'), // SMART formuliert
|
||||
@@ -138,7 +138,7 @@ export const project = pgTable(
|
||||
onDelete: 'set null',
|
||||
}),
|
||||
arbeitsmodus: text('arbeitsmodus', { enum: ['cycle', 'kanban'] }),
|
||||
// Projekt-Modus / Intensität — muss laut Buch jederzeit ans Team kommuniziert sein.
|
||||
// Projekt-Modus / Intensität — muss laut Leitfaden jederzeit ans Team kommuniziert sein.
|
||||
modus: text('modus', { enum: ['relax', 'standard', 'eskalation', 'taskforce'] })
|
||||
.notNull()
|
||||
.default('standard'),
|
||||
@@ -192,7 +192,7 @@ export const milestone = pgTable(
|
||||
.notNull()
|
||||
.default('open'),
|
||||
description: text('description'),
|
||||
// Ergebnis-Übersicht („Patchnotes") + konkreter Kundennutzen je Meilenstein (Buch Kap. 4).
|
||||
// Ergebnis-Übersicht („Patchnotes") + konkreter Kundennutzen je Meilenstein (Leitfaden).
|
||||
ergebnis: text('ergebnis'),
|
||||
kundennutzen: text('kundennutzen'),
|
||||
order: integer('order').notNull().default(0),
|
||||
@@ -601,7 +601,7 @@ export const leadTouchpoint = pgTable(
|
||||
);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// stakeholder — Stakeholder-Analyse pro Projekt (Buch Kap. 4). Interesse ×
|
||||
// stakeholder — Stakeholder-Analyse pro Projekt (Leitfaden). Interesse ×
|
||||
// Einfluss ergibt die Macht/Interesse-Matrix; Haltung = Grundeinstellung.
|
||||
// ----------------------------------------------------------------------------
|
||||
export const stakeholder = pgTable(
|
||||
@@ -635,7 +635,7 @@ export const stakeholder = pgTable(
|
||||
);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// risk — Risiko- & Chancen-Register pro Projekt (Buch Kap. 4). `kind`
|
||||
// risk — Risiko- & Chancen-Register pro Projekt (Leitfaden). `kind`
|
||||
// unterscheidet Gefahr vs. Chance. Showstopper = bringt das Projekt zum Stillstand.
|
||||
// ----------------------------------------------------------------------------
|
||||
export const risk = pgTable(
|
||||
|
||||
@@ -85,7 +85,7 @@ export const setMilestoneStatusInput = z.object({
|
||||
});
|
||||
export type SetMilestoneStatusInput = z.infer<typeof setMilestoneStatusInput>;
|
||||
|
||||
// --- Projekt-Modus (Buch Kap. 4 Strategie) ---------------------------------
|
||||
// --- Projekt-Modus (Leitfaden: Strategie) ---------------------------------
|
||||
export const projectModusSchema = z.enum(['relax', 'standard', 'eskalation', 'taskforce']);
|
||||
export const PROJECT_MODI = projectModusSchema.options;
|
||||
export const setModusInput = z.object({
|
||||
|
||||
Reference in new issue
Block a user