{% extends "base.html" %} {% set active_page = "projects" %} {% block title %}{{ project.title[:40] }}{% endblock %} {% block content %}
← All Projects

{{ project.title }}

{{ project.bid_status.value | replace('_', ' ') | title }} {% if project.ref_number %} BS-{{ '%03d' % project.ref_number }} {% endif %} FL#{{ project.freelancer_project_id }} {% if project.bid_amount %} {{ project.bid_amount | currency }} {% endif %} {% if project.github_repo_url %} GitHub → {% endif %} {% if project.source.value == 'freelancer' %}
{% endif %}
Overview Questions {% if qa_pairs %}({{ answers_count }}/{{ qa_pairs | length }}){% endif %} Conversation {% if messages %}({{ messages | length }}){% endif %} Bids Development Logs Decisions {% set pending = decisions | selectattr('status.value', 'equalto', 'pending') | list %} {% if pending %}({{ pending | length }}){% endif %} Reports {% if intake_questions %} Intake ({{ intake_questions | length }}) {% endif %}
{% if tab == 'overview' %}

Description

{{ project.description or 'No description' }}
{% if project.delivery_plan %}

Delivery Plan

{% endif %} {% if qa_pairs %}

Questions

View all →
{{ answers_count }}/{{ qa_pairs | length }} answered
{% endif %}
{% elif tab == 'questions' %}
{% if qa_pairs %}
{{ answers_count }}/{{ qa_pairs | length }} answered
{% if answers_count == qa_pairs | length %} Complete {% elif answers_count > 0 %} In Progress {% else %} Waiting {% endif %}
{% for qa in qa_pairs %}
{{ qa.num }}
{{ qa.question }}
{% if qa.answer %}
{{ qa.answer }}
{% else %}
Awaiting answer
{% endif %}
{% endfor %} {% else %}
No questionnaire generated for this project
{% endif %}
{% elif tab == 'conversation' %}
{% for msg in messages %}
{{ msg.sender.value | title }} · {{ msg.created_at | timeago }}
{{ msg.message_text }}
{% else %}
No messages yet
{% endfor %}
{% elif tab == 'bids' %}
{% if our_bid %}
Our Bid Bridgestack {% if our_bid.award_status == 'awarded' %} Awarded {% endif %}
${{ "%.2f" | format(our_bid.amount) }}
{{ our_bid.period }} days delivery
{% if our_bid.description %}
View bid description
{% endif %}
{% endif %} {% set competitors = bids_data | rejectattr('is_ours') | list %} {% if competitors %}

Competing Bids ({{ competitors | length }})

{% for bid in competitors %}
{{ loop.index }}
@{{ bid.username or ('Bidder #' ~ bid.bidder_id) }} {% if bid.display_name and bid.display_name != bid.username %} ({{ bid.display_name }}) {% endif %}
{% if bid.country %}{{ bid.country }}{% endif %} {% if bid.rating %} {{ "%.1f" | format(bid.rating) }} rating {% endif %} {% if bid.reviews %} {{ bid.reviews }} reviews {% endif %} {{ bid.period }} days
${{ "%.2f" | format(bid.amount) }}
{% if bid.award_status == 'awarded' %} Awarded {% endif %}
{% if bid.description %}
{{ bid.description }}
{% endif %}
{% endfor %}
{% endif %} {% if not bids_data %}
No bids found for this project
{% elif bids_data[0].get('error') %}
Failed to load bids: {{ bids_data[0].error }}
{% endif %} {% if bids_data and not bids_data[0].get('error') %}
Total bids: {{ bids_data | length }} {% set amounts = bids_data | map(attribute='amount') | select('number') | list %} {% if amounts %} Range: ${{ "%.0f" | format(amounts | min) }} — ${{ "%.0f" | format(amounts | max) }} {% endif %}
{% endif %}
{% elif tab == 'development' %}
{% for session in dev_sessions %}
{{ session.status.value | replace('_', ' ') | title }} {{ session.iteration_count or 0 }} iterations
{% if session.started_at %}Started {{ session.started_at | timeago }}{% endif %}
{% if session.claude_md %}
CLAUDE.md
{{ session.claude_md }}
{% endif %}
{% else %}
No development sessions
{% endfor %}
{% elif tab == 'logs' %}

Project Timeline

{% for entry in timeline %}
{{ entry.event }} {{ entry.time.strftime('%Y-%m-%d %H:%M:%S') if entry.time else '' }}
{% if entry.detail %}
{{ entry.detail }}
{% endif %}
{% else %}
No timeline events
{% endfor %}

Development Logs

Live
{% for log in dev_logs %}
{{ log.created_at.strftime('%H:%M:%S') }} [{{ log.log_type.value }}] {{ log.content[:500] }}
{% endfor %} {% if not dev_logs %}
No logs yet
{% endif %}
{% elif tab == 'decisions' %}
{% for d in decisions %}
{{ d.status.value | title }} {{ d.notified_at | timeago }}
{{ d.question }}
{% if d.status.value == 'pending' %}
{% elif d.answer %}
Answer: {{ d.answer }}
{% endif %}
{% else %}
No decisions requested
{% endfor %}
{% elif tab == 'reports' %}
{% for r in reports %}

{{ r.report_date }}

{% if r.commit_diff_summary %}
{{ r.commit_diff_summary }}
{% endif %} {% if r.claude_md_diff %}
CLAUDE.md diff
{{ r.claude_md_diff }}
{% endif %}
{% else %}
No reports yet
{% endfor %}
{% elif tab == 'intake' %}
{% if intake_analysis %}

AI Analysis Summary

{% if intake_analysis.client_project_summary %}

{{ intake_analysis.client_project_summary }}

{% endif %}
{% if intake_analysis.completeness_score %} Completeness: {{ intake_analysis.completeness_score.overall }}% {% endif %} {% if intake_analysis.project_type_classification %} Type: {{ intake_analysis.project_type_classification.type | replace('_', ' ') | title }} {% if not intake_analysis.project_type_classification.is_software %} Not Software {% endif %} {% endif %} {% if intake_analysis.promo_qualification %} Promo: {% if intake_analysis.promo_qualification.qualifies %} Qualifies ($99.99) {% else %} No {% endif %} {% endif %}
{% if intake_analysis.risk_flags %}

Risk Flags

{% for rf in intake_analysis.risk_flags %}
{{ rf.id }}: {{ rf.flag }} {% if rf.recommendation %} — {{ rf.recommendation }}{% endif %}
{% endfor %}
{% endif %} {% endif %}
{% set current_category = namespace(value='') %} {% for q in intake_questions %} {% if q.category != current_category.value %} {% set current_category.value = q.category %}

{{ q.category }}

{% endif %}
{{ q.idx + 1 }}
{{ q.question }}
{% if q.context %}
{{ q.context }}
{% endif %} {% if q.q_type == 'yes_no' %}
{% elif q.q_type == 'multiple_choice' and q.options %}
{% for opt in q.options %} {% endfor %}
{% elif q.q_type == 'multi_select' and q.options %}
{% for opt in q.options %} {% endfor %}
{% else %} {% endif %}
{% endfor %}
This will generate a delivery plan and queue a dev session
{% endif %} {% endblock %}