Set up minification of css and js. Added future feature documents for WordCompanion and WriterWorkspace. Removed old _Layout.cshtml.css css isolation file.

This commit is contained in:
Nick Beckley 2026-06-10 16:12:29 +01:00
parent 77d5623e51
commit 414986b7d7
10 changed files with 1624 additions and 54 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,250 @@
# PlotDirector -- Writer Workspace & Writing Schedule Planner
## Overview
The Writer Workspace and Writing Schedule Planner are designed to help
authors move from planning stories to completing manuscripts.
The overall philosophy is:
> **Writer Workspace answers:** *"What needs my attention?"*
> **Writing Schedule Planner answers:** *"When should I work on it?"*
Together, these systems aim to reduce decision fatigue, provide
realistic planning, adapt when life interrupts progress, and help
authors consistently finish books.
## Writer Workspace
### Purpose
The Writer Workspace provides a live overview of an author's current
workload.
It should help authors answer:
> **"What should I work on right now?"**
### Workflow Source of Truth
Revision Status is the sole source of truth for scene workflow
progression.
Status Meaning
--------------- -------------------------------------------------------
Planned Scene idea exists but is not ready to draft
Outlined Scene is ready for drafting
Drafted First draft completed
Needs Work Scene requires revision
Revised Revision completed and ready for polish
Polished Scene is complete
Locked Scene is finalised and protected from further changes
Cut Candidate Scene may be removed
These statuses represent major workflow milestones rather than every
individual writing activity.
### Workspace Queues
#### Write Next
Displays scenes with Revision Status of **Outlined**.
#### Continue Writing
Displays scenes with Revision Status of **Drafted**.
#### Revision Queue
Displays scenes with Revision Status of **Needs Work**.
#### Polishing Queue
Displays scenes with Revision Status of **Revised**.
#### Finished Work
Contains **Polished** and **Locked** scenes.
#### Excluded
**Planned** and **Cut Candidate** scenes are excluded from active
queues.
### Productivity Fields
Retained fields:
- Blocked
- Blocked Reason
- Priority
- Estimated Words
- Actual Words
- Drafted Date
- Last Worked On
Removed fields:
- Draft Status
- Ready for Draft
- Ready for Revision
- Ready for Polish
### Priority Slider
Value Label
------- ----------
1--2 Very Low
3--4 Low
5--6 Medium
7--8 High
9--10 Critical
Priority influences workspace ordering and schedule generation.
## Writing Schedule Planner
### Purpose
The planner helps authors answer:
> **"Can I realistically finish this book?"**
and
> **"What should I work on today?"**
### Schedule Creation
1. Select goal:
- Finish First Draft
- Finish Current Revisions
- Finish Manuscript Ready for Beta Readers
- Custom Goal
2. Choose target deadline.
3. Select writing days.
4. Specify session capacity.
5. Decide whether blocked scenes should be included.
### Schedule Generation
Revision Status Generated Work
----------------- --------------------
Outlined Draft Sessions
Needs Work Revision Sessions
Revised Polishing Sessions
Excluded statuses:
- Planned
- Polished
- Locked
- Cut Candidate
### Effort Estimation
Primary estimation uses Estimated Words.
Fallback defaults:
Activity Estimate
----------- ------------
Drafting 90 minutes
Revision 45 minutes
Polishing 30 minutes
### Schedule Items
Each item contains:
- Scheduled Date
- Scene
- Task Type
- Estimated Minutes
- Target Words
- Status
Statuses:
- Planned
- Done
- Skipped
- Moved
### Daily Dashboard
Displays:
- Today's Writing
- Upcoming Work
- Progress Summary
### Rebalancing
Default behaviour:
- Detect missed sessions
- Ask before rebalancing
Options:
- Preview Rebalance
- Keep Existing Plan
- Extend Deadline
User settings:
- Ask Before Rebalancing
- Automatically Rebalance
- Never Rebalance
### Encouragement Philosophy
The planner should encourage rather than shame.
Positive examples:
- You're ahead of schedule.
- Three scenes completed this week.
- Only revisions remain.
### Statistics
Track:
- Sessions Completed
- Sessions Missed
- Words Completed
- Scenes Completed
- Average Sessions Per Week
- Average Completion Rate
### Future Enhancements
Out of scope:
- Writing streaks
- Calendar integration
- Email reminders
- Publishing schedules
- Beta reader schedules
- Editor schedules
- Multi-author collaboration
- Manuscript integrations
## Summary
The Writer Workspace focuses on identifying what requires attention.
The Writing Schedule Planner focuses on determining when that work
should happen.
Together, these features transform PlotDirector from story planning
software into a complete book completion system, helping authors finish
their books.

View File

@ -21,4 +21,12 @@
</Content>
</ItemGroup>
<ItemGroup>
<Content Remove="bundleconfig.json" />
</ItemGroup>
<ItemGroup>
<None Include="bundleconfig.json" />
</ItemGroup>
</Project>

View File

@ -272,7 +272,7 @@
</div>
<div class="testimonial-grid">
<figure>
<blockquote>"It feels like someone finally designed a planning tool for the way my fantasy series actually works."</blockquote>
<blockquote>"It feels like someone finally designed a planning tool for the way my historical series actually works."</blockquote>
<figcaption>Catherine Lynwood, women's fiction author</figcaption>
</figure>
<figure>
@ -289,7 +289,7 @@
<section class="founder-story reveal-section">
<div class="marketing-container founder-story__grid">
<div class="founder-mark" aria-hidden="true">PW</div>
<div class="founder-mark" aria-hidden="true">PD</div>
<div>
<p class="marketing-eyebrow">Built by an author</p>
<h2>Created by a novelist who needed the same calm.</h2>

View File

@ -71,9 +71,15 @@
</script>
<script type="importmap"></script>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<environment include="Production">
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
<link rel="stylesheet" href="~/css/plotline-theme.min.css" asp-append-version="true" />
</environment>
<environment exclude="Production">
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/PlotLine.styles.css" asp-append-version="true" />
<link rel="stylesheet" href="~/css/plotline-theme.css" asp-append-version="true" />
</environment>
<link rel="icon" href="~/favicon.ico" sizes="any" />
<link rel="icon" type="image/svg+xml" href="~/favicon.svg" />
<link rel="icon" type="image/png" sizes="32x32" href="~/favicon-32x32.png" />
@ -223,7 +229,13 @@
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.9/dist/chart.umd.min.js"></script>
<environment include="Production">
<script src="~/js/site.min.js" asp-append-version="true"></script>
</environment>
<environment exclude="Production">
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>

View File

@ -1,48 +0,0 @@
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */
a.navbar-brand {
white-space: normal;
text-align: center;
word-break: break-all;
}
a {
color: #0077cc;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.border-top {
border-top: 1px solid #e5e5e5;
}
.border-bottom {
border-bottom: 1px solid #e5e5e5;
}
.box-shadow {
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}
button.accept-policy {
font-size: 1rem;
line-height: inherit;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
white-space: nowrap;
line-height: 60px;
}

View File

@ -0,0 +1,20 @@
[
{
"outputFileName": "wwwroot/css/plotline-theme.min.css",
"inputFiles": [
"wwwroot/css/plotline-theme.css"
]
},
{
"outputFileName": "wwwroot/css/site.min.css",
"inputFiles": [
"wwwroot/css/site.css"
]
},
{
"outputFileName": "wwwroot/js/site.min.js",
"inputFiles": [
"wwwroot/js/site.js"
]
}
]

File diff suppressed because one or more lines are too long

1
PlotLine/wwwroot/css/site.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1
PlotLine/wwwroot/js/site.min.js vendored Normal file

File diff suppressed because one or more lines are too long